41 lines
2.0 KiB
Markdown
41 lines
2.0 KiB
Markdown
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/`
|
|
|
|
## full .propellor repository
|
|
|
|
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.
|
|
|
|
## minimal .propellor repository
|
|
|
|
All that really needs to be in `~/.propellor/` though, is a `config.hs`
|
|
file, and a cabal file. To use propellor this way, you can first
|
|
install propellor, and then copy the two files from the
|
|
[mininalconfig branch](http://source.propellor.branchable.com/?p=source.git;a=tree;h=refs/heads/minimalconfig;hb=refs/heads/minimalconfig),
|
|
or clone it:
|
|
|
|
git clone ssh://b-propellor@propellor.branchable.com/propellor.branchable.com .propellor --branch minimalconfig --single-branch
|
|
|
|
In this configuration, when propellor is deploying itself to a new host,
|
|
it will automatically install the version of the propellor library
|
|
specified in the cabal file.
|