summaryrefslogtreecommitdiff
path: root/Command/Watch.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2015-07-13 11:42:42 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2015-07-13 11:42:42 -0400
commit2228571a90fbe00b02ee1f22fab92c9e824093df (patch)
tree8de8ad7e28e5f8f393f42ae078b9c4ed5f448d13 /Command/Watch.hs
parent93d62419262ca6ec924babe734780f7753d887a4 (diff)
converted Assistant and Watch; avoid duplicate arg parsing for no repo mode
Diffstat (limited to 'Command/Watch.hs')
-rw-r--r--Command/Watch.hs25
1 files changed, 8 insertions, 17 deletions
diff --git a/Command/Watch.hs b/Command/Watch.hs
index cc7356ddf..ac2f27397 100644
--- a/Command/Watch.hs
+++ b/Command/Watch.hs
@@ -13,26 +13,17 @@ import Command
import Utility.HumanTime
cmd :: Command
-cmd = notBareRepo $ withOptions [foregroundOption, stopOption] $
+cmd = notBareRepo $
command "watch" SectionCommon
"watch for changes and autocommit"
- paramNothing (withParams seek)
+ paramNothing (seek <$$> const parseDaemonOptions)
-seek :: CmdParams -> CommandSeek
-seek ps = do
- stopdaemon <- getOptionFlag stopOption
- foreground <- getOptionFlag foregroundOption
- withNothing (start False foreground stopdaemon Nothing) ps
+seek :: DaemonOptions -> CommandSeek
+seek o = commandAction $ start False o Nothing
-foregroundOption :: Option
-foregroundOption = flagOption [] "foreground" "do not daemonize"
-
-stopOption :: Option
-stopOption = flagOption [] "stop" "stop daemon"
-
-start :: Bool -> Bool -> Bool -> Maybe Duration -> CommandStart
-start assistant foreground stopdaemon startdelay = do
- if stopdaemon
+start :: Bool -> DaemonOptions -> Maybe Duration -> CommandStart
+start assistant o startdelay = do
+ if stopDaemonOption o
then stopDaemon
- else startDaemon assistant foreground startdelay Nothing Nothing Nothing -- does not return
+ else startDaemon assistant (foregroundDaemonOption o) startdelay Nothing Nothing Nothing -- does not return
stop