30 lines
907 B
Haskell
30 lines
907 B
Haskell
module Propellor.Property.Reboot where
|
|
|
|
import Propellor
|
|
|
|
now :: Property NoInfo
|
|
now = cmdProperty "reboot" []
|
|
`describe` "reboot now"
|
|
|
|
-- | Schedules a reboot at the end of the current propellor run.
|
|
--
|
|
-- The Result code of the endire propellor run can be checked;
|
|
-- the reboot proceeds only if the function returns True.
|
|
--
|
|
-- The reboot can be forced to run, which bypasses the init system. Useful
|
|
-- if the init system might not be running for some reason.
|
|
atEnd :: Bool -> (Result -> Bool) -> Property NoInfo
|
|
atEnd force resultok = property "scheduled reboot at end of propellor run" $ do
|
|
endAction "rebooting" atend
|
|
return NoChange
|
|
where
|
|
atend r
|
|
| resultok r = liftIO $ toResult
|
|
<$> boolSystem "reboot" rebootparams
|
|
| otherwise = do
|
|
warningMessage "Not rebooting, due to status of propellor run."
|
|
return FailedChange
|
|
rebootparams
|
|
| force = [Param "--force"]
|
|
| otherwise = []
|