packages feed

cabalg-0.2.7: src/Args.hs

module Args where

import Control.Arrow (second)

data Action
  = Help
  | Version
  | Install [String] (Maybe String)


fromArgs :: [String] -> Action
fromArgs [x] | x `elem` ["--help", "--usage", "-h"] = Help
fromArgs ["--version"] = Version
fromArgs x = uncurry Install . second flags . span (/= "--") $ x
 where
  flags [] = Nothing
  flags ["--"] = Nothing
  flags (_:xs) = Just $ unwords xs


printHelp :: IO ()
printHelp = putStrLn $ unlines
  [ "cabalg is an alias for installing cabal package from git source repository."
  , ""
  , "Usage:"
  , "    $> cabalg <repo1> ... <repoN> [-- <cabal-install args>]"
  , ""
  , "Example:"
  , "    $> cabalg https://github.com/biegunka/biegunka@f524f97"
  ]