dropped defaultCmd

With recusrion, it doesn't really make sense.
This commit is contained in:
Joey Hess 2010-10-16 13:59:48 -04:00
parent 1260adbd77
commit 5f73fd5b66
3 changed files with 8 additions and 19 deletions

View file

@ -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 ()

View file

@ -58,3 +58,5 @@ inAnnex :: Key -> Annex Bool
inAnnex key = do
g <- Annex.gitRepo
liftIO $ doesFileExist $ annexLocation g key
{- -}

View file

@ -39,8 +39,6 @@ Enough broad picture, here's how it actually looks:
* `git annex unannex $file` undoes a `git annex add`. But use `git annex drop`
if you're just done with a file; only use `unannex` if you
accidentially added a file.
* `git annex $file` is a shorthand. If the file
is already known, it does `git annex get`, otherwise it does `git annex add`.
Oh yeah, "$file" in the above can be any number of files, or directories.
git-annex automatically recurses into directories, but skips files that are