summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--manifests/dpkg_statoverride.pp75
1 files changed, 75 insertions, 0 deletions
diff --git a/manifests/dpkg_statoverride.pp b/manifests/dpkg_statoverride.pp
new file mode 100644
index 0000000..79ef4f1
--- /dev/null
+++ b/manifests/dpkg_statoverride.pp
@@ -0,0 +1,75 @@
+# = Define: apt::dpkg_statoverride
+#
+# Override ownership and mode of files
+#
+#
+# == Parameters
+#
+# [*name*]
+# Implicit parameter.
+# File path.
+#
+# [*user*]
+# User name (or user id if prepended with '#').
+#
+# [*group*]
+# Group name (or group id if prepended with '#').
+#
+# [*mode*]
+# File mode, in octal
+#
+# [*ensure*]
+# Whether to add or delete this configuration
+#
+#
+# == Examples
+#
+# Usage:
+# apt::dpkg_statoverride { '/var/log/puppet':
+# user => 'puppet',
+# group => 'puppet',
+# mode => '750',
+# }
+#
+# == License
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# == Copyright
+#
+# Copyright 2014-2016 Mathieu Parent
+#
+define apt::dpkg_statoverride(
+ $user,
+ $group,
+ $mode,
+ $ensure = present
+) {
+ case $ensure {
+ 'present': {
+ exec { "dpkg_statoverride_${name}-add":
+ command => "dpkg-statoverride --update --add '${user}' '${group}' '${mode}' '${name}'",
+ unless => "dpkg-statoverride --list '${name}' | grep '${user} ${group} ${mode} ${name}'",
+ }
+ }
+ 'absent': {
+ exec { "dpkg_statoverride_${name}-add":
+ command => "dpkg-statoverride --remove '${name}'",
+ onlyif => "dpkg-statoverride --list '${name}'",
+ }
+ }
+ default: {
+ fail("Unknown value for \$ensure: '${ensure}'")
+ }
+ }
+}