summaryrefslogtreecommitdiff
path: root/src/Propellor/Property/Cron.hs
AgeCommit message (Collapse)Author
2019-04-03remove unidiomatic parens before `func`Joey Hess
2019-04-03remove space before tab indentationJoey Hess
2019-04-03make Cron.runPropellor revertableSean Whitton
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
2019-04-03add Cron.jobDroppedSean Whitton
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
2019-04-01Added Utility.FileMode to the modules exported by Propellor.UtilitiesJoey Hess
Since File.mode uses FileMode, it seems it ought to be exported by propellor somewhere. I don't want to make propellor Property modules themselves export core data types though, so this is a compromise of dubious utility.
2019-01-18fix withOS type level bugJoey Hess
withOS had a type level bug that allowed ensureProperty to be used inside it with a Property that does not match the type of the withOS itself. Propellor.Property.Cron.runPropellor is a Property DebianLike; it was incorrectly a Property UnixLike before and that wrong type was hidden by the withOS bug. This commit was sponsored by Jack Hill on Patreon.
2017-07-12add bootstrapWith property to support stack and moreJoey Hess
* Hosts can be configured to build propellor using stack, by adding a property: & bootstrapWith (Robustly Stack) * Hosts can be configured to build propellor using cabal, but using only packages installed from the operating system. This will work on eg Debian: & bootstrapWith OSOnly propellor build its config using stack. (This does not affect how propellor is bootstrapped on a host by "propellor --spin host".) This has not yet been tested at all! But should probably work fine. This is based on earlier work by Arnaud Bailly, who made Propellor.Bootstrap use stack without parameterization. In Arnaud's patch, stack was installed using wget, but that only worked on linux-x86_64 and was insecure. I instead chose to use the distribution packages of stack, like is done for cabal. Debian stack has haskell-stack now, and it's getting into many distributions. This commit was sponsored by Francois Marier on Patreon.
2016-03-25ported moreJoey Hess
Ssh is WIP and failing to compile quite badly
2016-03-25continued portingJoey Hess
2016-03-07make Cron.runPropellor pass System to bootstrapPropellorCommandJoey Hess
Rather than having the property fail when the Host has no OS defined, I made bootstrapPropellorCommand not install deps in this situation. The cron job will (probably) still work, unless a system upgrade causes deps to be removed.
2016-03-07FreeBSD Support including:Evan Cofsky
- 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.
2015-10-10propellor spinJoey Hess
2015-05-27Export CommandParam, boolSystem, safeSystem and shellEscape from ↵Joey Hess
Propellor.Property.Cmd, so they are available for use in constricting your own Properties when using propellor as a library. Several imports of Utility.SafeCommand now redundant.
2015-04-22API change: Added User and Group newtypes, and Properties that used to use ↵Joey Hess
the type UserName = String were changed to use them. Note that UserName is kept and PrivData still uses it in its sum type. This is to avoid breaking PrivData serialization.
2015-04-02Make propellor resistent to changes to shared libraries, such as libffiJoey Hess
* Make propellor resistent to changes to shared libraries, such as libffi, which might render the propellor binary unable to run. This is dealt with by checking the binary both when running propellor on a remote host, and by Cron.runPropellor. If the binary doesn't work, it will be rebuilt. * Note that since a new switch had to be added to allow testing the binary, upgrading to this version will cause a rebuild from scratch of propellor.
2015-02-25Add shebang to cron.daily etc files.Joey Hess
2015-02-01propellor spinJoey Hess
2015-02-01propellor spinJoey Hess
2015-01-24GADT properties seem to work (untested)Joey Hess
* Property has been converted to a GADT, and will be Property NoInfo or Property HasInfo. This was done to make sure that ensureProperty is only used on properties that do not have Info. Transition guide: - Change all "Property" to "Property NoInfo" or "Property WithInfo" (The compiler can tell you if you got it wrong!) - To construct a RevertableProperty, it is useful to use the new (<!>) operator - Constructing a list of properties can be problimatic, since Property NoInto and Property WithInfo are different types and cannot appear in the same list. To deal with this, "props" has been added, and can built up a list of properties of different types, using the same (&) and (!) operators that are used to build up a host's properties.
2014-11-25cron.runPropellor now runs propellor, rather than using its Makefile. This ↵Joey Hess
is more robust. Particularly, the Makefile would try to build propellor if there were updates, but if this build failed because a bad commit was pushed, it would abort w/o pulling any new fixed commits. Anyway, it's better to move away from using the makefile when possible as it's just for bootstrapping, and also I would like to make "make" not default to running propellor as that can be confusing behavior. (I can't change that yet; needed for upgrades. Should be fine to change after several more releases, or maybe a year..)
2014-07-18propellor spinJoey Hess
2014-07-18propellor spinJoey Hess
2014-07-17propellor spinJoey Hess
2014-05-14moved source code to srcJoey Hess
This is to work around OSX's brain-damange regarding filename case insensitivity. Avoided moving config.hs, because it's a config file. Put in a symlink to make build work.