dropped defaultCmd
With recusrion, it doesn't really make sense.
This commit is contained in:
parent
1260adbd77
commit
5f73fd5b66
3 changed files with 8 additions and 19 deletions
23
Commands.hs
23
Commands.hs
|
@ -29,18 +29,16 @@ parseCmd argv = do
|
|||
(flags, params) <- getopt
|
||||
case (length params) of
|
||||
0 -> error header
|
||||
_ -> do
|
||||
let (cmd, locs) = takeCmd params $ lookupCmd (params !! 0)
|
||||
files <- mapM recurseFiles locs
|
||||
return (flags, map cmd $ foldl (++) [] files)
|
||||
_ -> case (lookupCmd (params !! 0)) of
|
||||
[] -> error header
|
||||
[(_,cmd)] -> do
|
||||
let locs = drop 1 params
|
||||
files <- mapM recurseFiles locs
|
||||
return (flags, map cmd $ foldl (++) [] files)
|
||||
where
|
||||
getopt = case getOpt Permute options argv of
|
||||
(flags, nonopts, []) -> return (flags, nonopts)
|
||||
(_, _, errs) -> ioError (userError (concat errs ++ usageInfo header options))
|
||||
takeCmd files cmds =
|
||||
if (0 == length cmds)
|
||||
then (defaultCmd, files)
|
||||
else ((snd $ cmds !! 0), drop 1 files)
|
||||
lookupCmd cmd = filter (\(c, a) -> c == cmd) cmds
|
||||
cmds = [ ("add", addCmd)
|
||||
, ("get", getCmd)
|
||||
|
@ -54,15 +52,6 @@ parseCmd argv = do
|
|||
(join "|" $ map fst cmds) ++ "] file ..."
|
||||
options = [ Option ['f'] ["force"] (NoArg Force) "allow actions that may loose annexed data" ]
|
||||
|
||||
{- Default mode is to annex a file if it is not already, and otherwise
|
||||
- get its content. -}
|
||||
defaultCmd :: FilePath -> Annex ()
|
||||
defaultCmd file = do
|
||||
r <- liftIO $ Backend.lookupFile file
|
||||
case (r) of
|
||||
Just v -> getCmd file
|
||||
Nothing -> addCmd file
|
||||
|
||||
{- Annexes a file, storing it in a backend, and then moving it into
|
||||
- the annex directory and setting up the symlink pointing to its content. -}
|
||||
addCmd :: FilePath -> Annex ()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue