add components page

This commit is contained in:
Joey Hess 2015-02-28 14:19:27 -04:00
parent f7a02ae4ff
commit 6734d89eb4
3 changed files with 46 additions and 2 deletions

View File

@ -6,8 +6,8 @@ are satisfied.
Propellor is configured via a git repository, which typically lives Propellor is configured via a git repository, which typically lives
in `~/.propellor/` on your development machine. Propellor clones the in `~/.propellor/` on your development machine. Propellor clones the
repository to each host it manages, in a repository to each host it manages, in a
[secure](http://propellor.branchable.com/security/) way. The git repository [secure](http://propellor.branchable.com/security/) way. See [[components]]
contains the full source code to Propellor, along with its config file. for details.
Properties are defined using Haskell. Edit `~/.propellor/config.hs` Properties are defined using Haskell. Edit `~/.propellor/config.hs`
to get started. There is fairly complete to get started. There is fairly complete

43
doc/components.mdwn Normal file
View File

@ -0,0 +1,43 @@
Propellor is a single system, but it's made up of some logically separate
components.
* Propellor is a Haskell library. The library can be installed
[from hackage](http://hackage.haskell.org/package/propellor)
in the usual ways. It complies with the
[[Haskell Package Version Policy|interface_stability]].
* `~/.propellor/` is a git repository, which contains at least your
`config.hs` file and a cabal file. This gets deployed to each machine
you manage with propellor, where it's installed as `/usr/local/propellor/`
* There can also be a propellor command in your PATH. If you `apt-get
install propellor`, you'll get one installed, or `cabal install propellor`
will put the command in `~/.cabal/bin/propellor`. This propellor command
is just a wrapper; it builds and runs what you have set up in `~/.propellor/`
Typically, the `~/.propellor/` git repository is set up by running the
propellor command, or by [[cloning propellor|install]]. That makes
the repository contain the full source code to propellor, including
the Haskell library.
So if you want to, you can edit any part of Propellor's source code.
Don't like how a property works, or need to make it more general? Just edit
then copy in `~/.propellor/src/Propellor/` and it will be used. See
[[contributing]] if you want to send your improvements back.
All that really needs to be in `~/.propellor/` though, is a `config.hs`
file, and a cabal file. If you want to set up the repository manually,
and don't want it to contain propellor's source code, here's a stub cabal
file to get you started:
<pre>
Name: foo
Cabal-Version: >= 1.6
Build-Type: Simple
Version: 0
Executable propellor-config
Main-Is: config.hs
GHC-Options: -Wall -threaded -O0
Build-Depends: propellor, base >= 3
</pre>
See [[haskell_newbie]] for an example config.hs file.

View File

@ -6,6 +6,7 @@ Other documentation:
* [[man page|usage]] * [[man page|usage]]
* [[Haskell Newbie]] * [[Haskell Newbie]]
* [[Centralized Git Repository]] * [[Centralized Git Repository]]
* [[Components]]
* [[Contributing]] * [[Contributing]]
* [[Interface Stability]] * [[Interface Stability]]
* [[Coding Stye]] * [[Coding Stye]]