summaryrefslogtreecommitdiff
path: root/src/Propellor/Property/File.hs
AgeCommit message (Collapse)Author
2015-04-23fix type signature, filepath and string params were flippedJoey Hess
thanks, gueux
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-01-29propellor 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.
2015-01-03add hasPrivContentFromJoey Hess
2014-12-14broke up big function to describe PrivDataFieldJoey Hess
2014-12-09fix a case where fileProperty reported a change despite not making oneJoey Hess
The problem occurred because two lists of lines of the file can be different, while representing the same file content. For example: ["foo", "bar"] ["foo\nbar"]
2014-12-07Fixed privdata introspection for User.hasPassword and User.hasSomePasswordJoey Hess
This is not a complete fix for the problem that Info doen't propigate from the called property when code does something like: do hostname <- asks hostName ensureProperty $ foo hostname Instead, I just eliminated the need to implement hasPassword that way, by making the PrivData Info use a HostContext which automatically gets the right hostname passed to it. All other uses of withPrivData don't have the problem. It's still possible for the user to run into the problem if they write something like the above, where foo is a property that uses privdata. However, all properties that take a Context now also accept a HostContext, so it's at least less likely the user needs to write that.
2014-07-17Fix bug in File.containsLines that caused lines that were already in the ↵Joey Hess
file to sometimes be appended to the end.
2014-07-17better hasPrivContentExposedJoey Hess
Avoid locking down and then lossening the file mode; just use the default/current mode from the beginning.
2014-07-06propellor 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.