summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2017-03-15Added Monoid instances for Property and RevertableProperty.Joey Hess
* Added Monoid instances for Property and RevertableProperty. * Removed applyToList. Instead, use mconcat. (API change) Eg, if you had: applyToList accountFor [User "joey", User "root"] use instead: mconcat (map accountFor [User "joey", User "root"]) mappend x y is basically the same as x `before` y. In particular, if x fails to be ensured, it won't ensure y. This seems to make sense, since applyToList had that behavior, and so does the Monoid for Propellor Result. The alternative would be to try to ensure both and combine the results. However, I don't see any reason to do it that way. It would be nice if the description of both properties were displayed when ensuring the combination. But then, it would need to display eg: ensuring x..ok ensuring y..failed ensuring x and ensuring y..failed Without a way to get rid of that redundant last line, I don't want to do that. Note that the haddocks for the Monoid instances need a really wide screen to display! This is IMHO an infelicity in haddock, and I can't do anything about it really. This commit was sponsored by Fernando Jimenez on Patreon.
2017-03-15Property types changed to use a Maybe (Propellor Result). (API change)Joey Hess
* Property types changed to use a Maybe (Propellor Result). (API change) * When Nothing needs to be done to ensure a property, propellor will avoid displaying its description at all. The doNothing property is an example of such a property. This is mostly in preparation for Monoid instances for Property types, but is's also nice that anything that uses doNothing will avoid printing out any message at all. At least, I think it probably is. It might potentially be confusing for something that sometimes takes an action and sometimes resolves to doNothing and in either case has a description set to not always show the description. If this did turn out to be confusing, the change to doNothing could be reverted. This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
2017-03-11cleanupJoey Hess
2017-03-11don't propagate DNS info from DiskImage chrootsJoey Hess
* DiskImage building properties used to propagate DNS info out from the chroot used to build the disk image to the Host. That is no longer done, since that chroot only exists as a side effect of the disk image creation and servers will not be running in it. * The IsInfo types class's propagateInfo function changed to use a PropagateInfo data type. (API change) This is particularly important when using hostChroot, since the host could well have DNS settings then. This commit was sponsored by Ole-Morten Duesund on Patreon.
2017-03-11Implemented hostChrootJoey Hess
As originally seen in my slides at Linux.Conf.Au 2017 in January. Now that it's not vaporware, it allows one Host to build a disk image that has all the properties of another Host. It was easier than I thought to implement this! As expected, Info propagation was slightly tricky. Also, I originally had a lot of machinery to try to use Info to detect infinitely nested chroot loops. But, my machinery didn't work, and when I tested it, ghc did a much better job, causing a "warning: <<loop>>" message to be output instead of such a property using infinite disk space. This commit was sponsored by Bruno BEAUFILS on Patreon.
2017-03-11Changed Chroot data type to include Info propigationJoey Hess
This will allow for different Chroots that propigate info differently. hostChroot will use this. This commit was sponsored by Peter Hogg on Patreon.
2017-03-11reorg docsJoey Hess
2017-03-11fix exampleJoey Hess
2017-03-08Remove make from propellor's dependency listJoey Hess
It's not used by propellor any longer. Has not been used for a long time actually.
2017-03-08propellor spinJoey Hess
2017-03-08propellor spinJoey Hess
2017-03-08added Apache.confEnabledJoey Hess
2017-03-01Merge branch 'joeyconfig'Joey Hess
2017-03-01use git.joeyh.nameJoey Hess
2017-03-01Fixed https url to propellor git repository.Joey Hess
2017-03-01github mirror of propellor is goneJoey Hess
* The github mirror of propellor's git repository has been removed, since github's terms of service has started imposing unwanted licensing requirements. * propellor --init: The option to clone propellor's git repository used to use the github mirror, and has been changed to use a different mirror.
2017-03-01removed my repos from github; don't need to run gitriddance anymoreJoey Hess
2017-02-26noteJoey Hess
2017-02-26convert fromIPAddr to valJoey Hess
2017-02-26convert from* in Firewall to valJoey Hess
2017-02-26use val instead of showJoey Hess
2017-02-26fix minor bug in pval (MegaBytes 0)Joey Hess
2017-02-26ConfigurableValue instances for User, GroupJoey Hess
2017-02-26fix tabs for indentationJoey Hess
2017-02-26use ConfigurableValue where applicableJoey Hess
* Removed fromPort (use val instead). (API change) * Removed several Show instances that were only used for generating configuration, replacing with ConfigurableValue instances. (API change) It's somewhat annoying that IsInfo requires a Show instance. That's needed to be able to display Info in ghci, but some non-derived Show instances had to be kept to support that.
2017-02-26Added ConfigurableValue type classJoey Hess
* Added ConfigurableValue type class, for values that can be used in a config file, or to otherwise configure a program. * The val function converts such values to String. This was motivated by the bug caused by type Port = Int changing to newtype Port = Port Int deriving Show After that change, some things that used show port to generate config files were broken. By using the ConfigurableValue type class instead, such breakage can be prevented.
2017-02-20Merge branch 'joeyconfig'Joey Hess
2017-02-20Tor bugfix: use fromPort instead of showFĂ©lix Sipma
2017-02-15more arches for stackInstalledJoey Hess
There is no armel build, unfortunately; the "arm" build is armhf at least currently.
2017-02-13deb.debian.orgJoey Hess
* Apt: Removed the mirrors.kernel.org line from stdSourcesList etc. The mirror CDN has a new implementation that should avoid the problems with httpredir that made an extra mirror sometimes be needed. * Switch Debian CDN address to deb.debian.org. httpredir.debian.org points to the same IPs as deb.debian.org now, so this shouldn't change anything except to use the now preferred name.
2017-02-07releasing package propellor version 3.3.0Joey Hess
2017-02-04Merge remote-tracking branch 'spwhitton/pin'Joey Hess
2017-02-04add missing case for ArchLinuxJoey Hess
2017-02-04improve layoutJoey Hess
2017-02-04Merge remote-tracking branch 'wzhd/archlinux'Joey Hess
2017-02-04AptPrefPackage -> AptPackagePrefSean Whitton
This reads much better: it's an "apt package preference".
2017-02-04Apt.pinnedTo takes a list of suites and pin prioritiesSean Whitton
2017-02-04factor out suitePinBlockSean Whitton
2017-02-04rm superfluous TODOSean Whitton
2017-02-04get rid of a compile-time errorZihao Wang
Signed-off-by: Zihao Wang <dev@wzhd.org>
2017-02-04replace Linux with DebianLike to compile DiskImageZihao Wang
Signed-off-by: Zihao Wang <dev@wzhd.org>
2017-02-04CloudAtCost requires User.nuked to be Property LinuxZihao Wang
Signed-off-by: Zihao Wang <dev@wzhd.org>
2017-02-04cleanInstallOnce supports DebianLike onlyZihao Wang
because of User.shadowConfig Signed-off-by: Zihao Wang <dev@wzhd.org>
2017-02-04add tightenTargetsZihao Wang
probably because of "now :: Property Linux" Signed-off-by: Zihao Wang <dev@wzhd.org>
2017-02-04make pattern-matching exhaustiveZihao Wang
Signed-off-by: Zihao Wang <dev@wzhd.org>
2017-02-04add some support for Arch Linux to PartedZihao Wang
Signed-off-by: Zihao Wang <dev@wzhd.org>
2017-02-04extend Rsync to support ArchLinuxZihao Wang
Signed-off-by: Zihao Wang <dev@wzhd.org>
2017-02-04addArchLinux support to Docker.installedZihao Wang
Signed-off-by: Zihao Wang <dev@wzhd.org>
2017-02-03responseJoey Hess
2017-02-03add property for PacmanZihao Wang
Signed-off-by: Zihao Wang <dev@wzhd.org>