Commit Graph

90 Commits

Author SHA1 Message Date
Joey Hess 0ee04ecc43 GADT properties seem to work (untested)
* 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.
2015-01-24 22:38:51 -04:00
Joey Hess afee550e70 Property tree
Properties now form a tree, instead of the flat list used before.

This simplifies propigation of Info from the Properties used inside a
container to the outer host; the Property that docks the container on the
host can just have as child properties all the inner Properties, and their
Info can then be gathered recursively. (Although in practice it still needs
to be filtered, since not all Info should propigate out of a container.)

Note that there is no change to how Properties are actually satisfied.
Just because a Property lists some child properties, this does not mean
they always have their propertySatisfy actions run. It's still up to the
parent property to run those actions.

That's necessary so that a container's properties can be satisfied inside
it, not outside. It also allows property combinators to
add the combined Properties to their childProperties list, even if,
like onChange, they don't always run the child properties at all.

Testing: I tested that the exact same Info is calculated before and after
this change, for every Host in my config file.
2015-01-18 18:46:38 -04:00
Joey Hess 042b3bee01
propellor spin 2015-01-09 21:21:06 -04:00
Joey Hess 2e2f8b4fdd
propellor spin 2015-01-08 23:08:16 -04:00
Joey Hess 5585778e54
propellor spin 2015-01-08 23:02:06 -04:00
Joey Hess 8e6e40abc4
propellor spin 2015-01-08 22:44:36 -04:00
Joey Hess ad8e318c34
propellor spin 2015-01-08 22:01:12 -04:00
Joey Hess 660b5d7f93
propellor spin 2015-01-08 21:41:55 -04:00
Joey Hess dd022c917b
propellor spin 2015-01-08 21:17:06 -04:00
Joey Hess 16a5f561f5 Merge Utiity modules from git-annex.
Except for a few that are using the other exception handling library,
that propellor has not switched to yet.
2015-01-06 19:07:40 -04:00
Joey Hess f4a57ca27d refactor dns settings! 2015-01-06 01:20:56 -04:00
Joey Hess ff7f70d280 add update-server-info, so the repo has all current branches published over http 2015-01-06 01:00:48 -04:00
Joey Hess c7aac0b35e remove screen workaround
Turns out elephant's oldusenet shellbox docker instance somehow had a
non-setguid screen binary. Dunno how; reinstall fixed it.
2014-12-23 15:45:35 -04:00
Joey Hess 35ccb0fac6
fix screen dir mode 2014-12-23 15:29:23 -04:00
Joey Hess a48f5916e1
propellor spin 2014-12-23 14:22:50 -04:00
Joey Hess b8be8c244e
propellor spin 2014-12-22 17:16:52 -04:00
Joey Hess 26a4c164e4 gitriddance 2014-12-22 15:05:05 -04:00
Joey Hess 111e08e156 typo 2014-11-18 23:54:49 -04:00
Joey Hess 8d91b5de6b Convert GpgKeyId to newtype 2014-11-15 17:02:30 -04:00
Joey Hess d65337d3e7
add Obnam backupEncrypted
This after I typoed an obnam setup and accidentially had a repo that was
backing up non-encrypted.
2014-11-15 13:42:04 -04:00
Joey Hess 0f1fcc24f8
propellor spin 2014-10-16 17:02:16 -04:00
Joey Hess 6a674c79d7 fix some accidental uses of spaces, rather than tabs, for indentation 2014-10-08 13:14:21 -04:00
Joey Hess 21117d5e21
propellor spin 2014-10-06 19:44:19 -04:00
Joey Hess e5dd1f6414
propellor spin 2014-09-24 14:03:23 -04:00
Joey Hess 960dd0d1f8
propellor spin 2014-09-24 11:29:08 -04:00
Joey Hess c96ba00822
propellor spin 2014-09-24 11:27:45 -04:00
Joey Hess d1292a5786
propellor spin 2014-09-24 11:22:55 -04:00
Joey Hess 3fe6e0f8bd
propellor spin 2014-09-24 11:21:12 -04:00
Joey Hess ffe36b68b4
propellor spin 2014-09-24 11:18:12 -04:00
Joey Hess acd4638493
propellor spin 2014-09-10 23:01:19 -04:00
Joey Hess d8367de73a
propellor spin 2014-09-10 22:56:42 -04:00
Joey Hess 599168ddcb
propellor spin 2014-09-08 15:20:53 -04:00
Joey Hess f2bdab547e
propellor spin 2014-09-08 15:18:42 -04:00
Joey Hess 0126c41a53
propellor spin 2014-09-08 12:46:54 -04:00
Joey Hess b21feb9e8d
propellor spin 2014-09-08 10:56:08 -04:00
Joey Hess 3cb9a60f89
propellor spin 2014-08-21 15:52:49 -04:00
Joey Hess 08a3c52017
propellor spin 2014-07-23 12:48:46 -04:00
Joey Hess 7d3c09df5f
propellor spin 2014-07-23 11:52:46 -04:00
Joey Hess 78bbd860c6
propellor spin 2014-07-23 10:54:21 -04:00
Joey Hess 321a0bdef6
propellor spin 2014-07-23 10:52:26 -04:00
Joey Hess 660f77c28f
propellor spin 2014-07-22 16:40:11 -04:00
Joey Hess e01fc46ba3
propellor spin 2014-07-22 16:21:54 -04:00
Joey Hess 400422a7e6
propellor spin 2014-07-22 15:27:44 -04:00
Joey Hess 98a3114763
propellor spin 2014-07-22 15:25:07 -04:00
Joey Hess 7028c2c9cc
propellor spin 2014-07-18 16:45:40 -04:00
Joey Hess 51edffe173
propellor spin 2014-07-18 16:43:11 -04:00
Joey Hess 93730d530a
propellor spin 2014-07-18 16:40:09 -04:00
Joey Hess d5abbeb116
propellor spin 2014-07-18 15:59:17 -04:00
Joey Hess fd7d6907b8
propellor spin 2014-07-18 15:58:05 -04:00
Joey Hess 0d188bf5f6
propellor spin 2014-07-18 14:33:30 -04:00