assistant: Added --autostop to complement --autostart.
This commit is contained in:
parent
ed97ba4bda
commit
437d9db41d
4 changed files with 40 additions and 9 deletions
|
@ -20,7 +20,7 @@ import Assistant.Install
|
||||||
import System.Environment
|
import System.Environment
|
||||||
|
|
||||||
cmd :: [Command]
|
cmd :: [Command]
|
||||||
cmd = [noRepo checkAutoStart $ dontCheck repoExists $ withOptions options $
|
cmd = [noRepo checkNoRepoOpts $ dontCheck repoExists $ withOptions options $
|
||||||
notBareRepo $ command "assistant" paramNothing seek SectionCommon
|
notBareRepo $ command "assistant" paramNothing seek SectionCommon
|
||||||
"automatically sync changes"]
|
"automatically sync changes"]
|
||||||
|
|
||||||
|
@ -30,11 +30,15 @@ options =
|
||||||
, Command.Watch.stopOption
|
, Command.Watch.stopOption
|
||||||
, autoStartOption
|
, autoStartOption
|
||||||
, startDelayOption
|
, startDelayOption
|
||||||
|
, autoStopOption
|
||||||
]
|
]
|
||||||
|
|
||||||
autoStartOption :: Option
|
autoStartOption :: Option
|
||||||
autoStartOption = flagOption [] "autostart" "start in known repositories"
|
autoStartOption = flagOption [] "autostart" "start in known repositories"
|
||||||
|
|
||||||
|
autoStopOption :: Option
|
||||||
|
autoStopOption = flagOption [] "autostop" "stop in known repositories"
|
||||||
|
|
||||||
startDelayOption :: Option
|
startDelayOption :: Option
|
||||||
startDelayOption = fieldOption [] "startdelay" paramNumber "delay before running startup scan"
|
startDelayOption = fieldOption [] "startdelay" paramNumber "delay before running startup scan"
|
||||||
|
|
||||||
|
@ -43,25 +47,31 @@ seek ps = do
|
||||||
stopdaemon <- getOptionFlag Command.Watch.stopOption
|
stopdaemon <- getOptionFlag Command.Watch.stopOption
|
||||||
foreground <- getOptionFlag Command.Watch.foregroundOption
|
foreground <- getOptionFlag Command.Watch.foregroundOption
|
||||||
autostart <- getOptionFlag autoStartOption
|
autostart <- getOptionFlag autoStartOption
|
||||||
|
autostop <- getOptionFlag autoStopOption
|
||||||
startdelay <- getOptionField startDelayOption (pure . maybe Nothing parseDuration)
|
startdelay <- getOptionField startDelayOption (pure . maybe Nothing parseDuration)
|
||||||
withNothing (start foreground stopdaemon autostart startdelay) ps
|
withNothing (start foreground stopdaemon autostart autostop startdelay) ps
|
||||||
|
|
||||||
start :: Bool -> Bool -> Bool -> Maybe Duration -> CommandStart
|
start :: Bool -> Bool -> Bool -> Bool -> Maybe Duration -> CommandStart
|
||||||
start foreground stopdaemon autostart startdelay
|
start foreground stopdaemon autostart autostop startdelay
|
||||||
| autostart = do
|
| autostart = do
|
||||||
liftIO $ autoStart startdelay
|
liftIO $ autoStart startdelay
|
||||||
stop
|
stop
|
||||||
|
| autostop = do
|
||||||
|
liftIO autoStop
|
||||||
|
stop
|
||||||
| otherwise = do
|
| otherwise = do
|
||||||
liftIO ensureInstalled
|
liftIO ensureInstalled
|
||||||
ensureInitialized
|
ensureInitialized
|
||||||
Command.Watch.start True foreground stopdaemon startdelay
|
Command.Watch.start True foreground stopdaemon startdelay
|
||||||
|
|
||||||
{- Run outside a git repository. Check to see if any parameter is
|
{- Run outside a git repository; support autostart and autostop mode. -}
|
||||||
- --autostart and enter autostart mode. -}
|
checkNoRepoOpts :: CmdParams -> IO ()
|
||||||
checkAutoStart :: CmdParams -> IO ()
|
checkNoRepoOpts _ = ifM (elem "--autostart" <$> getArgs)
|
||||||
checkAutoStart _ = ifM (elem "--autostart" <$> getArgs)
|
|
||||||
( autoStart Nothing
|
( autoStart Nothing
|
||||||
, error "Not in a git repository."
|
, ifM (elem "--autostop" <$> getArgs)
|
||||||
|
( autoStop
|
||||||
|
, error "Not in a git repository."
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
autoStart :: Maybe Duration -> IO ()
|
autoStart :: Maybe Duration -> IO ()
|
||||||
|
@ -89,3 +99,15 @@ autoStart startdelay = do
|
||||||
[ Param "assistant"
|
[ Param "assistant"
|
||||||
, Param $ "--startdelay=" ++ fromDuration (fromMaybe (Duration 5) startdelay)
|
, Param $ "--startdelay=" ++ fromDuration (fromMaybe (Duration 5) startdelay)
|
||||||
]
|
]
|
||||||
|
|
||||||
|
autoStop :: IO ()
|
||||||
|
autoStop = do
|
||||||
|
dirs <- liftIO readAutoStartFile
|
||||||
|
program <- programPath
|
||||||
|
forM_ dirs $ \d -> do
|
||||||
|
putStrLn $ "git-annex autostop in " ++ d
|
||||||
|
setCurrentDirectory d
|
||||||
|
ifM (boolSystem program [Param "assistant", Param "--stop"])
|
||||||
|
( putStrLn "ok"
|
||||||
|
, putStrLn "failed"
|
||||||
|
)
|
||||||
|
|
1
debian/changelog
vendored
1
debian/changelog
vendored
|
@ -25,6 +25,7 @@ git-annex (5.20150421) UNRELEASED; urgency=medium
|
||||||
on a file that doesn't exist. It will now continue to other
|
on a file that doesn't exist. It will now continue to other
|
||||||
files specified after that on the command line, and only error out at
|
files specified after that on the command line, and only error out at
|
||||||
the end.
|
the end.
|
||||||
|
* assistant: Added --autostop to complement --autostart.
|
||||||
|
|
||||||
-- Joey Hess <id@joeyh.name> Tue, 21 Apr 2015 15:54:10 -0400
|
-- Joey Hess <id@joeyh.name> Tue, 21 Apr 2015 15:54:10 -0400
|
||||||
|
|
||||||
|
|
|
@ -16,3 +16,6 @@ WantedBy=default.target
|
||||||
"""]]
|
"""]]
|
||||||
|
|
||||||
> This seems to overlap with [[todo/server-level_daemon__63__/]] in some way... --[[anarcat]]
|
> This seems to overlap with [[todo/server-level_daemon__63__/]] in some way... --[[anarcat]]
|
||||||
|
|
||||||
|
> Added --autostop and improved the docuemntation for --stop. [[done]]
|
||||||
|
> --[[Joey]]
|
||||||
|
|
|
@ -36,6 +36,11 @@ For more details about the git-annex assistant, see
|
||||||
|
|
||||||
Stop a running daemon in the current repository.
|
Stop a running daemon in the current repository.
|
||||||
|
|
||||||
|
* `--autostop`
|
||||||
|
|
||||||
|
The complement to --autostart; stops all running daemons in the
|
||||||
|
repositories listed in the autostart file.
|
||||||
|
|
||||||
# SEE ALSO
|
# SEE ALSO
|
||||||
|
|
||||||
[[git-annex]](1)
|
[[git-annex]](1)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue