From 9ac20660ef41c86251c6b0094e0bfad6aa18ba9b Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Mon, 20 Sep 2010 01:02:38 +0200 Subject: [PATCH] add cdist_package with dynamic backend selector Signed-off-by: Nico Schottelius --- conf/lib/cdist_explore_hostname | 0 conf/lib/cdist_explore_os | 0 conf/lib/cdist_explore_pkg_system | 0 conf/lib/cdist_package_backend_pacman | 28 +++++++++++++++++++++++++ conf/lib/cdist_package_install | 15 ++++++++++++-- conf/lib/cdist_package_select_backend | 30 +++++++++++++++++++++++++++ test/test_package_install | 24 +++++++++++++++++++++ 7 files changed, 95 insertions(+), 2 deletions(-) mode change 100755 => 100644 conf/lib/cdist_explore_hostname mode change 100755 => 100644 conf/lib/cdist_explore_os mode change 100755 => 100644 conf/lib/cdist_explore_pkg_system create mode 100644 conf/lib/cdist_package_backend_pacman create mode 100644 conf/lib/cdist_package_select_backend create mode 100755 test/test_package_install diff --git a/conf/lib/cdist_explore_hostname b/conf/lib/cdist_explore_hostname old mode 100755 new mode 100644 diff --git a/conf/lib/cdist_explore_os b/conf/lib/cdist_explore_os old mode 100755 new mode 100644 diff --git a/conf/lib/cdist_explore_pkg_system b/conf/lib/cdist_explore_pkg_system old mode 100755 new mode 100644 diff --git a/conf/lib/cdist_package_backend_pacman b/conf/lib/cdist_package_backend_pacman new file mode 100644 index 00000000..b54757cb --- /dev/null +++ b/conf/lib/cdist_package_backend_pacman @@ -0,0 +1,28 @@ +#!/bin/sh +# +# 2010 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 . +# +# +# Install a package +# +# + +cdist_package_backend_pacman_install() +{ + pacman --noconfirm --noprogressbar "$@" +} diff --git a/conf/lib/cdist_package_install b/conf/lib/cdist_package_install index 8632cd11..ecf0b1ec 100644 --- a/conf/lib/cdist_package_install +++ b/conf/lib/cdist_package_install @@ -19,8 +19,19 @@ # # -cdist_package_install() +cdist_package() { - : + # select backend + backend="$(cdist_package_select_backend)" + case "$1" in + install|remove) + operation="$1"; shift + echo ${backend}_${operation} "$@" + ;; + + *) + echo "Unsupported operation" + ;; + esac } diff --git a/conf/lib/cdist_package_select_backend b/conf/lib/cdist_package_select_backend new file mode 100644 index 00000000..567e54fa --- /dev/null +++ b/conf/lib/cdist_package_select_backend @@ -0,0 +1,30 @@ +#!/bin/sh +# +# 2010 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 . +# +# +# Select correct package management system +# +# + +cdist_package_select_backend() +{ + echo "cdist_package_backend_$(cdist_explore_pkg_system)" + + +} diff --git a/test/test_package_install b/test/test_package_install new file mode 100755 index 00000000..9f6ba3d6 --- /dev/null +++ b/test/test_package_install @@ -0,0 +1,24 @@ +#!/bin/sh +# +# 2010 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 . +# +# + +. cdist-config + +cdist_package install "$@"