import Stackage.Update
import System.Environment (getArgs)
import Data.List ((++), concat, intersperse)
import Paths_stackage_update (version)
import Data.Version (showVersion)
main :: IO ()
main = do
args <- getArgs
case args of
["--help"] -> putStrLn $ unlines
[ "Usage: stackage-update [--[no-]verify] [--[no-]hashes]"
, "Run this command with no arguments to update your package index."
, ""
, " --[no-]verify : Verify GPG signature on the repo"
, " --[no-]hashes : Download from the all-cabal-hashes repo"
]
["--summary"] -> putStrLn "Update your package index incrementally (requires git)"
["--version"] -> putStrLn $ "stackage-update version " ++ showVersion version
_ -> stackageUpdate $ foldr addArg defaultStackageUpdateSettings args
addArg :: String -> StackageUpdateSettings -> StackageUpdateSettings
addArg "--verify" = setVerify True
addArg "--no-verify" = setVerify False
addArg "--hashes" = setRemote allCabalHashes . setDirectoryName "all-cabal-hashes"
addArg "--no-hashes" = setRemote allCabalFiles . setDirectoryName "all-cabal-files"
addArg s = error $ concat
[ "Did not understand argument "
, show s
, ", try 'stackage-update --help' for more information"
]