Add success- and failhook options to cmdline
This commit is contained in:
parent
2f5628d254
commit
ccb9d00191
@ -63,16 +63,18 @@ removeLock :: IO ()
|
||||
removeLock = removeFileIfExists lockFile
|
||||
|
||||
data DevelOpts = DevelOpts
|
||||
{ isCabalDev :: Bool
|
||||
, forceCabal :: Bool
|
||||
, verbose :: Bool
|
||||
{ isCabalDev :: Bool
|
||||
, forceCabal :: Bool
|
||||
, verbose :: Bool
|
||||
, successHook :: Maybe String
|
||||
, failHook :: Maybe String
|
||||
} deriving (Show, Eq)
|
||||
|
||||
cabalCommand :: DevelOpts -> FilePath
|
||||
cabalCommand opts | isCabalDev opts = "cabal-dev"
|
||||
| otherwise = "cabal"
|
||||
|
||||
defaultDevelOpts = DevelOpts False False False
|
||||
defaultDevelOpts = DevelOpts False False False Nothing Nothing
|
||||
|
||||
devel :: DevelOpts -> [String] -> IO ()
|
||||
devel opts passThroughArgs = do
|
||||
|
||||
@ -28,6 +28,22 @@ mkOptApi name = option name (\o -> o
|
||||
, optionDescription = "use the GHC API to build (faster, but experimental)"
|
||||
})
|
||||
|
||||
mkOptSuccessHook name = option name (\o -> o
|
||||
{ optionLongFlags = ["success-hook"]
|
||||
, optionShortFlags = ['s']
|
||||
, optionType = optionTypeMaybe optionTypeString
|
||||
, optionDefault = ""
|
||||
, optionDescription = "Command to run when compilation succeeds (e.g. 'beep')"
|
||||
})
|
||||
|
||||
mkOptFailHook name = option name (\o -> o
|
||||
{ optionLongFlags = ["fail-hook"]
|
||||
, optionShortFlags = ['f']
|
||||
, optionType = optionTypeMaybe optionTypeString
|
||||
, optionDefault = ""
|
||||
, optionDescription = "Command to run when compilation fails (e.g. 'beep')"
|
||||
})
|
||||
|
||||
mkOptVerbose name = option name (\o -> o
|
||||
{ optionLongFlags = ["verbose"]
|
||||
, optionShortFlags = ['v']
|
||||
|
||||
@ -20,10 +20,12 @@ defineOptions "NoOptions" (return ())
|
||||
defineOptions "DevelOptions" $ do
|
||||
mkOptApi "develOptApi"
|
||||
-- mkOptNoApi "develOptNoApi" -- use this later when flag is enabled by default
|
||||
mkOptSuccessHook "optSuccessHook"
|
||||
mkOptFailHook "optFailHook"
|
||||
|
||||
defineOptions "MainOptions" $ do
|
||||
mkOptCabalDev "optCabalDev"
|
||||
mkOptVerbose "optVerbose"
|
||||
mkOptCabalDev "optCabalDev"
|
||||
mkOptVerbose "optVerbose"
|
||||
|
||||
type InitOptions = NoOptions
|
||||
type ConfigureOptions = NoOptions
|
||||
@ -65,8 +67,10 @@ cmdTouch _ _ _ = touch
|
||||
cmdDevel :: MainOptions -> DevelOptions -> [String] -> IO ()
|
||||
cmdDevel mopt opts args = devel dopts args
|
||||
where
|
||||
dopts = DevelOpts (optCabalDev mopt) forceCabal (optVerbose mopt)
|
||||
forceCabal = not (develOptApi opts)
|
||||
dopts = DevelOpts (optCabalDev mopt) forceCabal (optVerbose mopt) successHook failHook
|
||||
successHook = optSuccessHook opts
|
||||
failHook = optFailHook opts
|
||||
forceCabal = not (develOptApi opts)
|
||||
-- forceCabal = develOptNoApi opts
|
||||
|
||||
cmdVersion :: MainOptions -> VersionOptions -> [String] -> IO ()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user