@@ -18,7 +18,7 @@ import System.IO ( hPutStrLn, hFlush, stdout, stderr )
1818data Configuration = Configuration
1919 { optPrintHelp :: Bool
2020 , optPrintVersion :: Bool
21− , optSha256 :: String
21+ , optSha256 :: Maybe String
2222 , optMaintainer :: [String]
2323 , optPlatform :: [String]
2424 , optHaddock :: Bool
@@ -31,7 +31,7 @@ defaultConfiguration :: Configuration
3131defaultConfiguration = Configuration
3232 { optPrintHelp = False
3333 , optPrintVersion = False
34− , optSha256 = ""
34+ , optSha256 = Nothing
3535 , optMaintainer = []
3636 , optPlatform = []
3737 , optHaddock = True
@@ -42,7 +42,7 @@ defaultConfiguration = Configuration
4242options :: [OptDescr (Configuration -> Configuration)]
4343options =
4444 [ Option "h" ["help"] (NoArg (\o -> o { optPrintHelp = True })) "show this help text"
45− , Option "" ["sha256"] (ReqArg (\x o -> o { optSha256 = x }) "HASH") "sha256 hash of source tarball"
45+ , Option "" ["sha256"] (ReqArg (\x o -> o { optSha256 = Just x }) "HASH") "sha256 hash of source tarball"
4646 , Option "m" ["maintainer"] (ReqArg (\x o -> o { optMaintainer = x : optMaintainer o }) "MAINTAINER") "maintainer of this package (may be specified multiple times)"
4747 , Option "p" ["platform"] (ReqArg (\x o -> o { optPlatform = x : optPlatform o }) "PLATFORM") "supported build platforms (may be specified multiple times)"
4848 , Option "" ["no-haddock"] (NoArg (\o -> o { optHaddock = False })) "don't run Haddock when building this package"
@@ -84,7 +84,9 @@ main = bracket (return ()) (\() -> hFlush stdout >> hFlush stderr) $ \() -> do
8484 exitFailure
8585
8686 let packageId = package (packageDescription cabal)
87− sha <- if null (optSha256 cfg) then hashPackage packageId else return (optSha256 cfg)
87+ sha <- case optSha256 cfg of
88+ Just hash -> return hash
89+ Nothing -> hashPackage packageId
8890
8991 let deriv = (cabal2nix cabal) { sha256 = sha, runHaddock = optHaddock cfg, jailbreak = optJailbreak cfg }
9092 deriv' = deriv { metaSection = (metaSection deriv)