From 1cfde3e0957a988c3f3687fff8a1c6f0d85a3600 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sun, 5 Nov 2017 18:42:44 -0500 Subject: support `ensure` for package::makepkg --- modules/package/manifests/makepkg.pp | 48 ++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 18 deletions(-) (limited to 'modules/package') diff --git a/modules/package/manifests/makepkg.pp b/modules/package/manifests/makepkg.pp index a874377..90d9d4d 100644 --- a/modules/package/manifests/makepkg.pp +++ b/modules/package/manifests/makepkg.pp @@ -1,4 +1,4 @@ -define package::makepkg($asdeps=false) { +define package::makepkg($ensure, $asdeps=false) { if $asdeps { $extra_cmdline = " --asdeps" } @@ -6,22 +6,34 @@ define package::makepkg($asdeps=false) { $extra_cmdline = "" } - exec { "install $name": - provider => "shell", - command => " - cd /tmp - rm -rf 'makepkg-$name' - su doy -c 'git clone https://aur.archlinux.org/$name.git makepkg-$name' - cd 'makepkg-$name' - su doy -c makepkg - pacman -U --noconfirm --needed $extra_cmdline $name-*.pkg.tar.xz - ", - unless => "pacman -Q $name > /dev/null 2>&1", - path => "/usr/bin", - require => [ - Tozt::User["doy"], - Package["git"], - Package["pkg-config"], - ]; + case $ensure { + 'installed': { + exec { "install $name": + provider => "shell", + command => " + cd /tmp + rm -rf 'makepkg-$name' + su doy -c 'git clone https://aur.archlinux.org/$name.git makepkg-$name' + cd 'makepkg-$name' + su doy -c makepkg + pacman -U --noconfirm --needed $extra_cmdline $name-*.pkg.tar.xz + ", + unless => "pacman -Q $name > /dev/null 2>&1", + path => "/usr/bin", + require => [ + Tozt::User["doy"], + Package["git"], + Package["pkg-config"], + ]; + } + } + 'absent': { + exec { "uninstall $name": + provider => "shell", + command => "pacman --noconfirm -Rsn $name", + onlyif => "pacman -Q $name > /dev/null 2>&1", + path => "/usr/bin"; + } + } } } -- cgit v1.2.3-54-g00ecf