diff --git a/conf/type/__package_pacman/explorer/pkg_status b/conf/type/__package_pacman/explorer/pkg_status new file mode 100755 index 00000000..e13f8f5c --- /dev/null +++ b/conf/type/__package_pacman/explorer/pkg_status @@ -0,0 +1,30 @@ +#!/bin/sh +# +# 2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# +# Retrieve the status of a package - parsed dpkg output +# + +if [ -f "$__object/parameter/name" ]; then + name="$(cat "$__object/parameter/name")" +else + name="$__object_id" +fi + +dpkg -l "$name" 2>/dev/null | awk '{ print $1 }' diff --git a/conf/type/__package_pacman/gencode b/conf/type/__package_pacman/gencode new file mode 100755 index 00000000..8523e01e --- /dev/null +++ b/conf/type/__package_pacman/gencode @@ -0,0 +1,44 @@ +#!/bin/sh +# +# 2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# +# Manage packages on Debian and co. +# + +if [ -f "$__object/parameter/name" ]; then + name="$__object/parameter/name" +else + name="$__object_id" +fi + +state="$(cat "$__object/parameter/state")" + +case "$state" in + installed) + pkg_status="$(cat "$__object/explorer/pkg_status")" + if [ "$pkg_status" != "ii" ]; then + echo apt-get --quiet --yes install \"$name\" + fi + ;; + deinstalled) + if [ "$pkg_status" != "un" ]; then + echo apt-get --quiet --yes remove \"$name\" + fi + ;; +esac diff --git a/conf/type/__package_pacman/parameter/optional b/conf/type/__package_pacman/parameter/optional new file mode 100644 index 00000000..a52167d3 --- /dev/null +++ b/conf/type/__package_pacman/parameter/optional @@ -0,0 +1,2 @@ +name +version diff --git a/conf/type/__package_pacman/parameter/required b/conf/type/__package_pacman/parameter/required new file mode 100644 index 00000000..ff72b5c7 --- /dev/null +++ b/conf/type/__package_pacman/parameter/required @@ -0,0 +1 @@ +state