summaryrefslogtreecommitdiff
path: root/src/Propellor.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Propellor.hs')
-rw-r--r--src/Propellor.hs77
1 files changed, 77 insertions, 0 deletions
diff --git a/src/Propellor.hs b/src/Propellor.hs
new file mode 100644
index 00000000..e6312248
--- /dev/null
+++ b/src/Propellor.hs
@@ -0,0 +1,77 @@
+{-# LANGUAGE PackageImports #-}
+
+-- | Pulls in lots of useful modules for building and using Properties.
+--
+-- When propellor runs on a Host, it ensures that its list of Properties
+-- is satisfied, taking action as necessary when a Property is not
+-- currently satisfied.
+--
+-- A simple propellor program example:
+--
+-- > import Propellor
+-- > import Propellor.CmdLine
+-- > import qualified Propellor.Property.File as File
+-- > import qualified Propellor.Property.Apt as Apt
+-- >
+-- > main :: IO ()
+-- > main = defaultMain hosts
+-- >
+-- > hosts :: [Host]
+-- > hosts =
+-- > [ host "example.com"
+-- > & Apt.installed ["mydaemon"]
+-- > & "/etc/mydaemon.conf" `File.containsLine` "secure=1"
+-- > `onChange` cmdProperty "service" ["mydaemon", "restart"]
+-- > ! Apt.installed ["unwantedpackage"]
+-- > ]
+--
+-- See config.hs for a more complete example, and clone Propellor's
+-- git repository for a deployable system using Propellor:
+-- git clone <git://git.kitenet.net/propellor>
+
+module Propellor (
+ module Propellor.Types
+ , module Propellor.Property
+ , module Propellor.Property.Cmd
+ , module Propellor.Attr
+ , module Propellor.PrivData
+ , module Propellor.Engine
+ , module Propellor.Exception
+ , module Propellor.Message
+ , localdir
+
+ , module X
+) where
+
+import Propellor.Types
+import Propellor.Property
+import Propellor.Engine
+import Propellor.Property.Cmd
+import Propellor.PrivData
+import Propellor.Message
+import Propellor.Exception
+import Propellor.Attr
+
+import Utility.PartialPrelude as X
+import Utility.Process as X
+import Utility.Exception as X
+import Utility.Env as X
+import Utility.Directory as X
+import Utility.Tmp as X
+import Utility.Monad as X
+import Utility.Misc as X
+
+import System.Directory as X
+import System.IO as X
+import System.FilePath as X
+import Data.Maybe as X
+import Data.Either as X
+import Control.Applicative as X
+import Control.Monad as X
+import Data.Monoid as X
+import Control.Monad.IfElse as X
+import "mtl" Control.Monad.Reader as X
+
+-- | This is where propellor installs itself when deploying a host.
+localdir :: FilePath
+localdir = "/usr/local/propellor"