File: rule.pp

package info (click to toggle)
puppet-module-camptocamp-systemd 2.12.0-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 680 kB
  • sloc: ruby: 1,094; sh: 10; makefile: 4
file content (48 lines) | stat: -rw-r--r-- 1,497 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# Adds a custom udev rule
#
# @api public
#
# @see udev(7)
#
# @attr name [Pattern['^.+\.rules$']]
#   The name of the udev rules to create
#
# @param $ensure
#   Whether to drop a file or remove it
#
# @param path
#   The path to the main systemd settings directory
#
# @param selinux_ignore_defaults
#   If Puppet should ignore the default SELinux labels.
#
# @param notify_services
#   List of services to notify when this rule is updated
#
# @param rules
#   The literal udev rules you want to deploy
#
define systemd::udev::rule (
  Array                             $rules,
  Enum['present', 'absent', 'file'] $ensure                  = 'present',
  Stdlib::Absolutepath              $path                    = '/etc/udev/rules.d',
  Optional[Variant[Array, String]]  $notify_services         = [],
  Optional[Boolean]                 $selinux_ignore_defaults = false,
) {
  include systemd

  $filename = assert_type(Pattern['^.+\.rules$'], $name) |$expected, $actual| {
    fail("The \$name should match \'${expected}\', you passed \'${actual}\'")
  }

  file { $filename:
    ensure                  => $ensure,
    owner                   => 'root',
    group                   => 'root',
    mode                    => '0444',
    path                    => join([$path, $name], '/'),
    notify                  => $notify_services,
    selinux_ignore_defaults => $selinux_ignore_defaults,
    content                 => epp("${module_name}/udev_rule.epp", {'rules' => $rules}),
  }
}