convert all commands to work with optparse-applicative

Still no options though.
This commit is contained in:
Joey Hess 2015-07-08 15:08:02 -04:00
parent 3125da54f6
commit 6e5c1f8db3
99 changed files with 391 additions and 297 deletions

View file

@ -20,7 +20,7 @@ type Batchable t = BatchMode -> t -> CommandStart
-- In batch mode, one line at a time is read, parsed, and a reply output to
-- stdout. In non batch mode, the command's parameters are parsed and
-- a reply output for each.
batchable :: ((t -> CommandStart) -> CommandSeek) -> Batchable t -> CommandSeek
batchable :: ((t -> CommandStart) -> CmdParams -> CommandSeek) -> Batchable t -> CmdParams -> CommandSeek
batchable seeker starter params = ifM (getOptionFlag batchOption)
( batchloop
, seeker (starter NoBatch) params

View file

@ -16,7 +16,6 @@ import Utility.Env
import Annex.Ssh
import qualified Command.Add
{-
import qualified Command.Unannex
import qualified Command.Drop
import qualified Command.Move
@ -117,12 +116,10 @@ import qualified Command.TestRemote
#ifdef WITH_EKG
import System.Remote.Monitoring
#endif
-}
cmds :: [Command]
cmds =
[ Command.Add.cmd
{-
, Command.Get.cmd
, Command.Drop.cmd
, Command.Move.cmd
@ -221,7 +218,6 @@ cmds =
, Command.FuzzTest.cmd
, Command.TestRemote.cmd
#endif
-}
]
header :: String

View file

@ -1,6 +1,6 @@
{- git-annex usage messages
-
- Copyright 2010-2011 Joey Hess <id@joeyh.name>
- Copyright 2010-2015 Joey Hess <id@joeyh.name>
-
- Licensed under the GNU GPL version 3 or higher.
-}
@ -8,10 +8,10 @@
module CmdLine.Usage where
import Common.Annex
import Types.Command
import System.Console.GetOpt
import qualified Options.Applicative as O
usageMessage :: String -> String
usageMessage s = "Usage: " ++ s
@ -56,6 +56,13 @@ commandUsage cmd = unlines
, "[option ...]"
]
{- Simple CommandParser generator, for when the CommandSeek wants all
- non-option parameters. -}
withParams :: (CmdParams -> CommandSeek) -> String -> CommandParser
withParams mkseek paramdesc = mkseek <$> O.many cmdparams
where
cmdparams = O.argument O.str (O.metavar paramdesc)
{- Descriptions of params used in usage messages. -}
paramPaths :: String
paramPaths = paramRepeating paramPath -- most often used