--- /dev/null
+# common/manifests/defines/line.pp -- a trivial puppet lined
+# Copyright (C) 2007 David Schmitt <david@schmitt.edv-bus.at>
+# See LICENSE for the full license granted to you.
+
+# Usage:
+# line { description:
+# file => "filename",
+# line => "content",
+# ensure => {absent,present}
+# }
+define line($file, $line, $ensure) {
+ case $ensure {
+ default : { err ( "unknown ensure value $ensure" ) }
+ present: {
+ exec { "/bin/echo '$line' >> '$file'":
+ unless => "/bin/grep -Fx '$line' '$file'"
+ }
+ }
+ absent: {
+ exec { "/usr/bin/perl -ni -e 'print unless /^\\Q$line\\E$/' '$file'":
+ onlyif => "/bin/grep -Fx '$line' '$file'"
+ }
+ }
+ }
+}
+
+
# Copyright (C) 2007 David Schmitt <david@schmitt.edv-bus.at>
# See LICENSE for the full license granted to you.
-# Module programmers can use /var/lib/puppet/modules/$modulename to
-# save module-local data, e.g. for constructing config files
file {
+ # Module programmers can use /var/lib/puppet/modules/$modulename to save
+ # module-local data, e.g. for constructing config files
"/var/lib/puppet/modules":
ensure => directory,
mode => 0755, owner => root, group => root;
+ # prepare directories to drop various puppet enhancements
+ [ "$rubysitedir/puppet", "$rubysitedir/facter" ]:
+ ensure => directory,
+ mode => 0755, owner => root, group => root;
}
+import "defines/*.pp"