git.iko.soy/typeable/cabal2nix
on master help sign in
Merge pull request #284 from dmjio/derivation-info

Expose derivation info from cabal2nix'

commitcb2265e218ccc8af726cc88ce1d93d3e1fd4bc71 authorPeter Simons <simons@cryp.to> dateMon 10 Jul 2017, 10:44 (9 years ago) parentf81ab114e9e46d
1 file changed+10−4
src/Cabal2nix.hs+10−4
src/Cabal2nix.hs+10−4
@@ -2,7 +2,7 @@
22{-# LANGUAGE OverloadedStrings #-}
33
44module Cabal2nix
5− ( main, cabal2nix
5+ ( main, cabal2nix, cabal2nix'
66 )
77 where
88
@@ -118,8 +118,8 @@ main :: IO ()
118118main = bracket (return ()) (\() -> hFlush stdout >> hFlush stderr) $ \() ->
119119 cabal2nix =<< getArgs
120120
121−cabal2nix :: [String] -> IO ()
122−cabal2nix args = do
121+cabal2nix' :: [String] -> IO (Either Doc Derivation)
122+cabal2nix' args = do
123123 Options {..} <- handleParseResult $ execParserPure defaultPrefs pinfo args
124124
125125 pkg <- getPackage optHackageDb $ Source optUrl (fromMaybe "" optRevision) (maybe UnknownHash Guess optSha256) (fromMaybe "" optSubpath)
@@ -165,8 +165,14 @@ cabal2nix args = do
165165 , text ""
166166 , text " if pkgs.lib.inNixShell then drv.env else drv"
167167 ]
168+ pure $ if optNixShellOutput then Left shell else Right deriv
168169
169− print (if optNixShellOutput then shell else pPrint deriv)
170+cabal2nix :: [String] -> IO ()
171+cabal2nix args = do
172+ v <- cabal2nix' args
173+ print $ case v of
174+ Left shell -> shell
175+ Right d -> pPrint d
170176
171177readFlagList :: [String] -> FlagAssignment
172178readFlagList = map tagWithValue