more descriptive name for oneshot

This commit is contained in:
Joey Hess 2012-09-15 20:46:38 -04:00
parent 9a9b4b840e
commit ba0334116c
13 changed files with 20 additions and 19 deletions

View file

@ -298,9 +298,9 @@ getKeysPresent = liftIO . traverse (2 :: Int) =<< fromRepo gitAnnexObjectDir
- especially if performing a short-lived action.
-}
saveState :: Bool -> Annex ()
saveState oneshot = doSideAction $ do
saveState nocommit = doSideAction $ do
Annex.Queue.flush
unless oneshot $
unless nocommit $
whenM alwayscommit $
Annex.Branch.commit "update"
where

View file

@ -43,7 +43,7 @@ dispatch fuzzyok allargs allcmds commonoptions fields header getgitrepo = do
forM_ fields $ \(f, v) -> Annex.setField f v
sequence_ flags
prepCommand cmd params
tryRun state' cmd $ [startup] ++ actions ++ [shutdown $ cmdoneshot cmd]
tryRun state' cmd $ [startup] ++ actions ++ [shutdown $ cmdnocommit cmd]
where
err msg = msg ++ "\n\n" ++ usage header allcmds commonoptions
cmd = Prelude.head cmds
@ -112,8 +112,8 @@ startup = return True
{- Cleanup actions. -}
shutdown :: Bool -> Annex Bool
shutdown oneshot = do
saveState oneshot
shutdown nocommit = do
saveState nocommit
sequence_ =<< M.elems <$> Annex.getState Annex.cleanup
liftIO Git.Command.reap -- zombies from long-running git processes
sshCleanup -- ssh connection caching

View file

@ -8,7 +8,7 @@
module Command (
command,
noRepo,
oneShot,
noCommit,
withOptions,
next,
stop,
@ -43,9 +43,10 @@ import Annex.CheckAttr
command :: String -> String -> [CommandSeek] -> String -> Command
command = Command [] Nothing commonChecks False
{- Makes a command run in oneshot mode. -}
oneShot :: Command -> Command
oneShot c = c { cmdoneshot = True }
{- Indicates that a command doesn't need to commit any changes to
- the git-annex branch. -}
noCommit :: Command -> Command
noCommit c = c { cmdnocommit = True }
{- Adds a fallback action to a command, that will be run if it's used
- outside a git repository. -}

View file

@ -12,7 +12,7 @@ import Command
import Annex.UUID
def :: [Command]
def = [oneShot $ command "configlist" paramNothing seek
def = [noCommit $ command "configlist" paramNothing seek
"outputs relevant git configuration"]
seek :: [CommandSeek]

View file

@ -15,7 +15,7 @@ import Annex.Content
import Types.Key
def :: [Command]
def = [oneShot $ command "dropkey" (paramRepeating paramKey) seek
def = [noCommit $ command "dropkey" (paramRepeating paramKey) seek
"drops annexed content for specified keys"]
seek :: [CommandSeek]

View file

@ -12,7 +12,7 @@ import Command
import Annex.Content
def :: [Command]
def = [oneShot $ command "inannex" (paramRepeating paramKey) seek
def = [noCommit $ command "inannex" (paramRepeating paramKey) seek
"checks if keys are present in the annex"]
seek :: [CommandSeek]

View file

@ -16,7 +16,7 @@ import Logs.Transfer
import Command.SendKey (fieldTransfer)
def :: [Command]
def = [oneShot $ command "recvkey" paramKey seek
def = [noCommit $ command "recvkey" paramKey seek
"runs rsync in server mode to receive content"]
seek :: [CommandSeek]

View file

@ -15,7 +15,7 @@ import Logs.Transfer
import qualified Fields
def :: [Command]
def = [oneShot $ command "sendkey" paramKey seek
def = [noCommit $ command "sendkey" paramKey seek
"runs rsync in server mode to send content"]
seek :: [CommandSeek]

View file

@ -19,7 +19,7 @@ import qualified Option
def :: [Command]
def = [withOptions options $
oneShot $ command "transferkey" paramKey seek
noCommit $ command "transferkey" paramKey seek
"transfers a key from or to a remote"]
options :: [Option]

View file

@ -13,7 +13,7 @@ import qualified Build.SysConfig as SysConfig
import Annex.Version
def :: [Command]
def = [oneShot $ noRepo showPackageVersion $ dontCheck repoExists $
def = [noCommit $ noRepo showPackageVersion $ dontCheck repoExists $
command "version" paramNothing seek "show version info"]
seek :: [CommandSeek]

View file

@ -31,7 +31,7 @@ import Control.Concurrent
import Control.Concurrent.STM
def :: [Command]
def = [oneShot $ noRepo startNoRepo $ dontCheck repoExists $
def = [noCommit $ noRepo startNoRepo $ dontCheck repoExists $
command "webapp" paramNothing seek "launch webapp"]
seek :: [CommandSeek]

View file

@ -15,7 +15,7 @@ import Remote
import Logs.Trust
def :: [Command]
def = [command "whereis" paramPaths seek
def = [noCommit $ command "whereis" paramPaths seek
"lists repositories that have file content"]
seek :: [CommandSeek]

View file

@ -38,7 +38,7 @@ data Command = Command
{ cmdoptions :: [Option] -- command-specific options
, cmdnorepo :: Maybe (IO ()) -- an action to run when not in a repo
, cmdcheck :: [CommandCheck] -- check stage
, cmdoneshot :: Bool -- don't save state after running
, cmdnocommit :: Bool -- don't commit journalled state changes
, cmdname :: String
, cmdparamdesc :: String -- description of params for usage
, cmdseek :: [CommandSeek] -- seek stage