summaryrefslogtreecommitdiff
path: root/src/Propellor.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Propellor.hs')
-rw-r--r--src/Propellor.hs74
1 files changed, 35 insertions, 39 deletions
diff --git a/src/Propellor.hs b/src/Propellor.hs
index 51079ed0..4f777f11 100644
--- a/src/Propellor.hs
+++ b/src/Propellor.hs
@@ -1,15 +1,12 @@
-{-# LANGUAGE PackageImports #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
--- | Pulls in lots of useful modules for building and using Properties.
---
--- When propellor runs on a Host, it ensures that its list of 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
-- >
@@ -30,54 +27,53 @@
-- git clone <git://git.joeyh.name/propellor>
module Propellor (
- module Propellor.Types
+ -- * Core data types
+ Host(..)
+ , Property
+ , RevertableProperty
+ , (<!>)
+ -- * Core config file
+ , defaultMain
+ , host
+ , (&)
+ , (!)
+ , describe
+ -- * Combining properties
+ -- | Properties are often combined together in your propellor
+ -- configuration. For example:
+ --
+ -- > "/etc/foo/config" `File.containsLine` "bar=1"
+ -- > `requires` File.dirExists "/etc/foo"
+ , requires
+ , before
+ , onChange
+ -- * Included modules
+ -- | These are only the core modules you'll need. There are many
+ -- more in propellor that you can import.
+ , module Propellor.Types
+ -- | Additional data types used by propellor
, module Propellor.Property
- , module Propellor.Property.List
+ -- | Everything you need to build your own properties,
+ -- and useful property combinators
, module Propellor.Property.Cmd
- , module Propellor.PropAccum
+ -- | Properties to run shell commands
, module Propellor.Info
- , module Propellor.PrivData
+ -- | Properties that set `Info`
+ , module Propellor.Property.List
+ -- | Combining a list of properties into a single property
, module Propellor.Types.PrivData
- , module Propellor.Engine
- , module Propellor.Exception
- , module Propellor.Message
- , localdir
+ -- | Private data access for properties
, module X
) where
import Propellor.Types
+import Propellor.CmdLine (defaultMain)
import Propellor.Property
-import Propellor.Engine
import Propellor.Property.List
import Propellor.Property.Cmd
-import Propellor.PrivData
import Propellor.Types.PrivData
-import Propellor.Message
-import Propellor.Exception
import Propellor.Info
import Propellor.PropAccum
-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"