@@ -1,6 +1,33 @@
1+{-# LANGUAGE RecordWildCards #-}
2+
13module Main where
24
3−import Lib
5+import Data.Monoid ( (<>) )
6+import Options.Applicative
7+import Distribution.Nixpkgs.Haskell.Stack
8+
9+data Options = Options
10+ { optStackYaml :: Maybe FilePath
11+ , optStackResolver :: Maybe String
12+ , optOutDir :: FilePath
13+ , optHackageDb :: Maybe FilePath
14+ } deriving (Show)
15+
16+options :: Parser Options
17+options = Options
18+ <$> optional (strArgument $ metavar "STACK_YAML")
19+ <*> optional (strOption $ long "resolver" <> metavar "RESOLVER" <> help "override stack resolver")
20+ <*> strOption (long "out" <> metavar "OUT" <> value "nix" <> showDefaultWith id <> help "output directory")
21+ <*> optional (strOption $ long "hackage-db" <> metavar "HACKAGE_DB" <> help "path to the local hackage db in tar format")
22+
23+pinfo :: ParserInfo Options
24+pinfo = info
25+ ( helper
26+ <*> options )
27+ ( fullDesc
28+ <> header "stack2nix converts Stack files into build instructions for Nix." )
429
530main :: IO ()
6−main = someFunc
31+main = do
32+ Options {..} <- execParser pinfo
33+ print nixpkgsOverride