From 75ae06595a6971eb21630928bcdd3f33c06b3ea0 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 31 May 2017 16:20:55 -0400 Subject: support parsing options like --to=here Reworked remote name parsing to allow things like that. Command.Move uses it for --to=here, although there's not yet an implementation of that option. This commit was sponsored by Ignacio on Patreon. --- CmdLine/GitAnnex/Options.hs | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'CmdLine/GitAnnex/Options.hs') diff --git a/CmdLine/GitAnnex/Options.hs b/CmdLine/GitAnnex/Options.hs index 726a6963c..aad0536d8 100644 --- a/CmdLine/GitAnnex/Options.hs +++ b/CmdLine/GitAnnex/Options.hs @@ -1,6 +1,6 @@ {- git-annex command-line option parsing - - - Copyright 2010-2015 Joey Hess + - Copyright 2010-2017 Joey Hess - - Licensed under the GNU GPL version 3 or higher. -} @@ -105,10 +105,10 @@ parseAutoOption = switch <> help "automatic mode" ) -parseRemoteOption :: Parser RemoteName -> Parser (DeferredParse Remote) -parseRemoteOption p = DeferredParse +parseRemoteOption :: RemoteName -> DeferredParse Remote +parseRemoteOption = DeferredParse . (fromJust <$$> Remote.byNameWithUUID) - . Just <$> p + . Just data FromToOptions = FromRemote (DeferredParse Remote) @@ -120,18 +120,18 @@ instance DeferredParseClass FromToOptions where parseFromToOptions :: Parser FromToOptions parseFromToOptions = - (FromRemote <$> parseFromOption) - <|> (ToRemote <$> parseToOption) + (FromRemote . parseRemoteOption <$> parseFromOption) + <|> (ToRemote . parseRemoteOption <$> parseToOption) -parseFromOption :: Parser (DeferredParse Remote) -parseFromOption = parseRemoteOption $ strOption +parseFromOption :: Parser RemoteName +parseFromOption = strOption ( long "from" <> short 'f' <> metavar paramRemote <> help "source remote" <> completeRemotes ) -parseToOption :: Parser (DeferredParse Remote) -parseToOption = parseRemoteOption $ strOption +parseToOption :: Parser RemoteName +parseToOption = strOption ( long "to" <> short 't' <> metavar paramRemote <> help "destination remote" <> completeRemotes -- cgit v1.2.3