summaryrefslogtreecommitdiff
path: root/src/Propellor/Property/Cmd.hs
diff options
context:
space:
mode:
authorJoey Hess2015-05-07 12:16:48 -0400
committerJoey Hess2015-05-07 12:16:48 -0400
commit63ccccb1bb3eb14f351b4e8745a952d8738c0f5e (patch)
tree5c03d545ecd6238b36bffd2951de345deba3dc57 /src/Propellor/Property/Cmd.hs
parent53a084632c3ce865877aa205580a5697440cdd8b (diff)
cmdProperty' renamed to cmdPropertyEnv to make way for a new, more generic cmdProperty' (API change)
Diffstat (limited to 'src/Propellor/Property/Cmd.hs')
-rw-r--r--src/Propellor/Property/Cmd.hs17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/Propellor/Property/Cmd.hs b/src/Propellor/Property/Cmd.hs
index e2b91db1..859302c8 100644
--- a/src/Propellor/Property/Cmd.hs
+++ b/src/Propellor/Property/Cmd.hs
@@ -3,6 +3,7 @@
module Propellor.Property.Cmd (
cmdProperty,
cmdProperty',
+ cmdPropertyEnv,
scriptProperty,
userScriptProperty,
) where
@@ -10,6 +11,7 @@ module Propellor.Property.Cmd (
import Control.Applicative
import Data.List
import "mtl" Control.Monad.Reader
+import System.Process (CreateProcess)
import Propellor.Types
import Propellor.Property
@@ -20,12 +22,19 @@ import Utility.Env
--
-- The command must exit 0 on success.
cmdProperty :: String -> [String] -> Property NoInfo
-cmdProperty cmd params = cmdProperty' cmd params []
+cmdProperty cmd params = cmdProperty' cmd params id
+
+cmdProperty' :: String -> [String] -> (CreateProcess -> CreateProcess) -> Property NoInfo
+cmdProperty' cmd params mkprocess = property desc $ liftIO $ do
+ toResult <$> boolSystem' cmd (map Param params) mkprocess
+ where
+ desc = unwords $ cmd : params
-- | A property that can be satisfied by running a command,
--- with added environment.
-cmdProperty' :: String -> [String] -> [(String, String)] -> Property NoInfo
-cmdProperty' cmd params env = property desc $ liftIO $ do
+-- with added environment variables in addition to the standard
+-- environment.
+cmdPropertyEnv :: String -> [String] -> [(String, String)] -> Property NoInfo
+cmdPropertyEnv cmd params env = property desc $ liftIO $ do
env' <- addEntries env <$> getEnvironment
toResult <$> boolSystemEnv cmd (map Param params) (Just env')
where