From fd2a8194ac7a0cd5295bfa1974a4da3e2dada416 Mon Sep 17 00:00:00 2001 From: Thomas Bellman <bellman@lysator.liu.se> Date: Sun, 29 Apr 2018 16:52:05 +0200 Subject: [PATCH] Use Augeas to manage (remove) Grub0 kernel options. Augeas knows the grammar for the Grub0 config file, so we don't need to have complicated regular expressions in our code to deal with all the corner cases. --- manifests/grub0/kernel_option.pp | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/manifests/grub0/kernel_option.pp b/manifests/grub0/kernel_option.pp index 578442f..5cee05f 100644 --- a/manifests/grub0/kernel_option.pp +++ b/manifests/grub0/kernel_option.pp @@ -1,4 +1,4 @@ -# Copyright © 2017 Thomas Bellman, Linköping, Sweden +# Copyright © 2017-2018 Thomas Bellman, Linköping, Sweden # Licensed under the GNU LGPL v3+; see the README file for more information. @@ -7,18 +7,14 @@ */ define bootloader::grub0::kernel_option($ensure, $value) { - $prefix = '^(\s*kernel\s(|.*\s))' - $suffix = '(|\s.*)$' - $qname = regexp_quote($name) - if ($ensure == 'absent') { - regexp_replace_lines { + augeas { "bootloader::grub0::kernel_option::${name}": - file => '/boot/grub/grub.conf', - pattern => "${prefix}${qname}(=\\S*)?${suffix}", - # \1 is prefix, \4 is suffix - replacement => '\1\4'; + incl => '/boot/grub/grub.conf', + lens => 'Grub.lns', + context => '/files/boot/grub/grub.conf', + changes => "rm title[*]/kernel/${name}"; } } elsif ($ensure != 'present') -- GitLab