git.iko.soy/typeable/cabal2nix
on master help sign in
Re-defined readVersion with 'simpleParse'.
167204ePeter Simons
src/Distribution/NixOS/Derivation/Cabal.hs+1−7
@@ -85,7 +85,7 @@ parseDerivation buf
85 , noHaddock <- buf `regsubmatch` "noHaddock *= *(true|false) *;"
85 , noHaddock <- buf `regsubmatch` "noHaddock *= *(true|false) *;"
86 = Just $ MkDerivation
86 = Just $ MkDerivation
87 { pname = name
87 { pname = name
88− , version = readVersion vers
88+ , version = maybe (error $ "cannot parse version " ++ show vers) id (simpleParse vers)
89 , sha256 = sha
89 , sha256 = sha
90 , isLibrary = False
90 , isLibrary = False
91 , isExecutable = False
91 , isExecutable = False
@@ -109,9 +109,3 @@ regsubmatch :: String -> String -> [String]
109regsubmatch buf patt = let (_,_,_,x) = f in x
109regsubmatch buf patt = let (_,_,_,x) = f in x
110 where f :: (String,String,String,[String])
110 where f :: (String,String,String,[String])
111 f = match (makeRegexOpts compExtended execBlank patt) buf
111 f = match (makeRegexOpts compExtended execBlank patt) buf
112−
113−readVersion :: String -> Version
114−readVersion str =
115− case [ v | (v,[]) <- readP_to_S parseVersion str ] of
116− [ v' ] -> v'
117− _ -> error ("invalid version specifier " ++ show str)
src/Hackage4Nix.hs+1−4
@@ -80,10 +80,7 @@ regenerateDerivation deriv buf = not (pname deriv `elem` patchedPackages) &&
80 not (buf =~ "preConfigure|configureFlags|postInstall|patchPhase")
80 not (buf =~ "preConfigure|configureFlags|postInstall|patchPhase")
81
81
82readVersion :: String -> Version
82readVersion :: String -> Version
83−readVersion str =
83+readVersion str = maybe (error $ "cannot parse version " ++ show str) id (simpleParse str)
84− case [ v | (v,[]) <- readP_to_S parseVersion str ] of
85− [ v' ] -> v'
86− _ -> error ("invalid version specifier " ++ show str)
87
84
88parseNixFile :: FilePath -> String -> Hackage4Nix (Maybe Pkg)
85parseNixFile :: FilePath -> String -> Hackage4Nix (Maybe Pkg)
89parseNixFile path buf
86parseNixFile path buf