| Age | Commit message (Collapse) | Author |
|
|
|
Moved to its own module to keep everything related in one place.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
So, when I merge some branch into joeyconfig, config.hs will automatically
be updated to point to joeyconfig.hs again, even if the merge changes it.
And, when I merge joeyconfig into master, config.hs will be pointed back to
config-simple.hs
This may also be useful for others who maintain a branch like joeyconfig.
|
|
Let's keep config-simple quite simple; naive users start by modifying it
and probably don't want to be faced with freebsd example, unless they're
freebsd users.
|
|
|
|
- Propellor bootstrapping
- Basic pkg
- Basic ZFS datasets and properties
- Simple Poudriere configuration (regular and ZFS)
- Poudriere jail creation
FIXME:
- Cron.hs: runPropellor needs the System, but hasn't yet gotten it.
Reorganizing:
- Remove FreeBSD.Process
- Move ZFS up to Property
- Add Info for Pkg.update/Pkg.upgrade
- Move FreeBSD.md to doc so it'll show up automatically.
- Merge the FreeBSD config with the other sample config.
- Use Info to check Pkg updated/upgraded and Poudriere configured.
- Warnings clean-up, move ZFS types to Propellor.Types.
- Maintainer and license statements.
|
|
Before, they could run in the background if another process was running,
and so their output wouldn't immediately be visible.
With this change, the concurrent-output layer is not used for these
interactive commands.
|
|
|
|
Removed references to *buntu from code and documentation because of
an unfortunate trademark use policy.
http://joeyh.name/blog/entry/trademark_nonsense/
That included changing a data constructor to "FooBuntu", an API change.
|
|
|
|
* Added Propellor.Property.LetsEncrypt
* Apache.httpsVirtualHost: New property, setting up a https vhost
with the certificate automatically obtained using letsencrypt.
|
|
|
|
|
|
|
|
(cherry picked from commit 6f0fe3614f3c55c4a9e312aa6fa6730316fe5ec7)
|
|
* Properties that run an arbitrary command, such as cmdProperty
and scriptProperty are converted to use UncheckedProperty, since
they cannot tell on their own if the command truely made a change or not.
(API Change)
Transition guide:
- When GHC complains about an UncheckedProperty, add:
`assume` MadeChange
- Since these properties used to always return MadeChange, that
change is always safe to make.
- Or, if you know that the command should modifiy a file, use:
`changesFile` filename
* A few properties have had their Result improved, for example
Apt.buldDep and Apt.autoRemove now check if a change was made or not.
|
|
needs its result checked, and checkResult and changesFile to check for changes.
|
|
|
|
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
(cherry picked from commit 0beffb353812c79b8455754f11c6f7e45b49c3b6)
|
|
|
|
|
|
|
|
I doubt anyone is going to use propellor on windows..
|
|
repository url normally implicitly set when using --spin.
|
|
|
|
|
|
This adds a dependency on Text, but I don't mind propellor depending on it
and am somewhat surprised it doesn't already.
Using Text also lets this use encodeUtf8 instead of the nasty hack it was
using to go from String -> ByteString.
|
|
|
|
I had 2 MVars both involved in the same lock, and it seemed intractable to
avoid deadlocks with them. STM makes it easy.
At this point, the concurrent process stuff seems to work pretty well, but
I'm not 100% sure it's not got some bugs.
|
|
|
|
Found a reasonable clean way to make Utility.Process use
execProcessConcurrent, while still allowing copying updates to it from
git-annex.
|
|
* Various property combinators that combined a RevertableProperty
with a non-revertable property used to yield a RevertableProperty.
This was a bug, because the combined property could not be fully
reverted in many cases. Fixed by making the combined property
instead be a Property HasInfo.
* combineWith now takes an addional parameter to control how revert
actions are combined (API change).
|
|
Note that no output multiplexing is currently done.
|
|
|
|
|
|
Propellor.Property.Conductor.
Wow, really.. So, this gets back to having properties that are added to
hosts to say what they conduct. I think that
conducts webservers `before` conducts dnsserver is an important thing to be
able to express.
Untested except for eyeballing the resulting Host data.
|
|
very different Propellor.Property.ControlHeir.
Rethought it because it turned out that propigating the PrivData rendered
the loop detection pointless, because when there was a loop, each host
included the other's PrivData, which in turn lead to a loop. And, it was
not possible to break that loop.
So, changed from adding properties to hosts to a top-down hierarchy
that makes changes as needed when applied to the hosts.
Which makes it easy to detect and break loops.
Aka: The Ur Quan know what they're up to.
|
|
controller of other hosts.
The hard part of this is avoiding loops of controllers. To make that work,
a ControllerChain is passed to the host that's spun, and is added to the
Info of the host being spun, where the controller property can check it
to detect an avoid a loop.
That needed an expansion of the CmdLine data type. I made the new
ControlledRun only be used when there is a ControllerChain provided.
This avoids breaking backwards compatability with old propellor
deployments, as --spin still uses SimpleRun.
Note: Making an old propellor deployment be controlled by a controller
won't work until it's been updated to this commit, so it knows about
the ControlledRun parameter.
(Untested)
|
|
|
|
This involved some code changes, including some renaming of instance
methods. (ABI change)
|