started converting to use optparse-applicative

This is a work in progress. It compiles and is able to do basic command
dispatch, including git autocorrection, while using optparse-applicative
for the core commandline parsing.

* Many commands are temporarily disabled before conversion.
* Options are not wired in yet.
* cmdnorepo actions don't work yet.

Also, removed the [Command] list, which was only used in one place.
This commit is contained in:
Joey Hess 2015-07-08 12:33:27 -04:00
parent 4018e5f6f1
commit a2ba701056
104 changed files with 435 additions and 370 deletions

View file

@ -7,6 +7,7 @@
module Command (
command,
commandParser,
noRepo,
noCommit,
noMessages,
@ -32,10 +33,17 @@ import CmdLine.Action as ReExported
import CmdLine.Option as ReExported
import CmdLine.GitAnnex.Options as ReExported
{- Generates a normal command -}
command :: String -> String -> CommandSeek -> CommandSection -> String -> Command
import qualified Options.Applicative as O
{- Generates a normal Command -}
command :: String -> String -> CommandSection -> String -> CommandParser -> Command
command = Command [] Nothing commonChecks False False
{- Simple CommandParser generator, for when the CommandSeek wants all
- non-option parameters. -}
commandParser :: (CmdParams -> CommandSeek) -> CommandParser
commandParser mkseek = mkseek <$> O.many (O.argument O.str O.idm)
{- Indicates that a command doesn't need to commit any changes to
- the git-annex branch. -}
noCommit :: Command -> Command