default command
This commit is contained in:
parent
0f12bd16d8
commit
282d985368
2 changed files with 18 additions and 8 deletions
|
@ -14,7 +14,7 @@ import System.Console.GetOpt
|
|||
import Types
|
||||
import Commands
|
||||
|
||||
data Mode = Add | Push | Pull | Want | Get | Drop | Unannex
|
||||
data Mode = Default | Add | Push | Pull | Want | Get | Drop | Unannex
|
||||
deriving Show
|
||||
|
||||
options :: [OptDescr Mode]
|
||||
|
@ -30,8 +30,7 @@ options =
|
|||
|
||||
argvToMode argv = do
|
||||
case getOpt Permute options argv of
|
||||
-- default mode is Add
|
||||
([],files,[]) -> return (Add, files)
|
||||
([],files,[]) -> return (Default, files)
|
||||
-- one mode is normal case
|
||||
(m:[],files,[]) -> return (m, files)
|
||||
-- multiple modes is an error
|
||||
|
@ -43,7 +42,8 @@ argvToMode argv = do
|
|||
dispatch :: Mode -> FilePath -> Annex ()
|
||||
dispatch mode item = do
|
||||
case (mode) of
|
||||
Add -> annexCmd item
|
||||
Default -> defaultCmd item
|
||||
Add -> addCmd item
|
||||
Push -> pushCmd item
|
||||
Pull -> pullCmd item
|
||||
Want -> wantCmd item
|
||||
|
|
18
Commands.hs
18
Commands.hs
|
@ -1,7 +1,8 @@
|
|||
{- git-annex subcommands -}
|
||||
|
||||
module Commands (
|
||||
annexCmd,
|
||||
defaultCmd,
|
||||
addCmd,
|
||||
unannexCmd,
|
||||
getCmd,
|
||||
wantCmd,
|
||||
|
@ -25,10 +26,19 @@ import UUID
|
|||
import LocationLog
|
||||
import Types
|
||||
|
||||
{- 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. -}
|
||||
annexCmd :: FilePath -> Annex ()
|
||||
annexCmd file = inBackend file err $ do
|
||||
addCmd :: FilePath -> Annex ()
|
||||
addCmd file = inBackend file err $ do
|
||||
liftIO $ checkLegal file
|
||||
stored <- Backend.storeFile file
|
||||
g <- Annex.gitRepo
|
||||
|
@ -63,7 +73,7 @@ annexCmd file = inBackend file err $ do
|
|||
subdirs = (length $ split "/" file) - 1
|
||||
|
||||
|
||||
{- Inverse of annexCmd. -}
|
||||
{- Inverse of addCmd. -}
|
||||
unannexCmd :: FilePath -> Annex ()
|
||||
unannexCmd file = notinBackend file err $ \(key, backend) -> do
|
||||
Backend.dropFile backend key
|
||||
|
|
Loading…
Reference in a new issue