@@ -26,7 +26,8 @@ newtype StackageConfig = StackageConfig { unStackageConfig :: FilePath }
2626makePrisms ''StackageConfig
2727
2828data Options = Options
29− { _optHackageDb :: !(Maybe HackageDb)
29+ { _optOutFile :: !FilePath
30+ , _optHackageDb :: !(Maybe HackageDb)
3031 , _optStackagePackages :: !(Maybe StackagePackages)
3132 , _optStackageConfig :: !(Maybe StackageConfig)
3233 , _optCompilerId :: !CompilerId
@@ -38,7 +39,8 @@ makeLenses ''Options
3839
3940options :: Parser Options
4041options = Options
41− <$> optional hackageDb
42+ <$> outFile
43+ <*> optional hackageDb
4244 <*> optional stackagePackages
4345 <*> optional stackageConfig
4446 <*> compilerId
@@ -52,6 +54,13 @@ pinfo = info
5254 ( fullDesc
5355 <> header "stack2nix converts Stack files into build instructions for Nix." )
5456
57+outFile :: Parser FilePath
58+outFile = option str
59+ ( long "nix-out-file"
60+ <> metavar "NIX_OUT_FILE"
61+ <> help "path where to write output derivation"
62+ <> value "default.nix" )
63+
5564stackResolver :: Parser StackResolver
5665stackResolver = StackResolver <$>
5766 option text