It is currently counter-intuitive that something like:
# File '/thing' contents
#SomeSetting WrongValue
# Manifest
__line '/thing' \
--line 'SomeSeting GoodValue' \
--regex '^(#[[:space:]]*)?SomeSetting[[:space:]]'
Produces:
# Resulting '/thing' contents
#SomeSetting WrongValue
This makes sense given the implementation, but it masks a very common use-case.
Changing the default behaviour for such a base type is not really an option, so
instead we add a `replace` as a valid value for `--state`, which would result
in:
# Resulting '/thing' contents with: --state replace
SomeSetting GoodValue
For compatibility, if the regex is missing, `--state replace` behaves just as
`--state present`.
In a pristine FreeBSD base installation, pkg is really a bootstrapper utility,
in such cases the type used to fail instead of automatically bootstrapping pkg.
Conversion of Debian sid to versions is done based on Debian codenames.
The version number is the version number of the final release - 0.01.
It is unknown if Debian < 4.0 has any sort of version information
available (apart from maybe checking base-files package version).
But I don't think any of these systems are still alive,
so I think going with 3.99 is fine for those.
All distros with ID_LIKE suse should be treated as "suse".
My openSUSE Leap 15.1 installation has:
ID_LIKE="suse opensuse"
This patch doesn't require a strict "suse" value but only the word suse to be in
the list.
ubuntu 6.10 and debian etch are 10+ years old and EOL. rather than
preserving compatibility I'll just remove it. while /etc/environment
works too, correct place is /etc/default/locale (as it was before
breaking change). also /etc/debian_version (os_version explorer) may
contain minor version with dot (10.5) or string (bullseye/sid).
Fix broken --option parameter in __postfix_master type
See merge request ungleich-public/cdist!905
(cherry picked from commit 2f433a1458f3a1f7f8859e9ae165178a0ec5b7a0)
9496b234 The option parameter is actually multi-valued
4009bbd7 Protect postfix variables in options
Solaris 11 has GNU stat (handled by *)
Solaris 10 (and older?) does not have stat (handled by failing command -v stat)
On Solaris 10 (at least on UFS), setgid cannot be set on directories.
Unlike on other systems `chmod 2400` is not `-r----S---`, but `-r----l---`.