From ad127791cded5d9bf3a5c4bce8c9ec7e09414866 Mon Sep 17 00:00:00 2001 From: Steven Armstrong Date: Sat, 19 Feb 2011 01:44:24 +0100 Subject: [PATCH 1/4] let HACKERS_README accept target host as argument Signed-off-by: Steven Armstrong --- HACKERS_README | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/HACKERS_README b/HACKERS_README index 62f55b94..48df9258 100755 --- a/HACKERS_README +++ b/HACKERS_README @@ -33,6 +33,7 @@ export __cdist_out_objects=${base}/objects export __cdist_out_explorers=${base}/explorers export __cdist_out_execs=${base}/exec -cdist-deploy-to localhost +target="${1:-localhost}" +cdist-deploy-to "$target" find "${base}" From a69cb997ee436a369ab0f6aa4c683e7bb72c9f5d Mon Sep 17 00:00:00 2001 From: Steven Armstrong Date: Tue, 22 Feb 2011 16:11:07 +0100 Subject: [PATCH 2/4] +icarus Signed-off-by: Steven Armstrong --- conf/manifests/init | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/conf/manifests/init b/conf/manifests/init index 8c090547..092c832e 100755 --- a/conf/manifests/init +++ b/conf/manifests/init @@ -18,4 +18,9 @@ case "$__cdist_target_host" in katze*) __package qemu-kvm --wtf installed ;; + + icarus) + __package tree --ensure installed + ;; + esac From e5366650cec777a36b92066ea9773496a9486fa0 Mon Sep 17 00:00:00 2001 From: Steven Armstrong Date: Tue, 22 Feb 2011 16:15:50 +0100 Subject: [PATCH 3/4] +type:__package Signed-off-by: Steven Armstrong --- conf/types/__package/hints | 5 +++ conf/types/__package/manifest | 46 ++++++++++++++++++++++++ conf/types/__package/parameters/optional | 2 ++ conf/types/__package/parameters/required | 1 + 4 files changed, 54 insertions(+) create mode 100755 conf/types/__package/manifest create mode 100644 conf/types/__package/parameters/optional create mode 100644 conf/types/__package/parameters/required diff --git a/conf/types/__package/hints b/conf/types/__package/hints index 76fbcae6..86282e3b 100644 --- a/conf/types/__package/hints +++ b/conf/types/__package/hints @@ -1,2 +1,7 @@ install/pacman: pacman --noconfirm --noprogressbar -S +-------------------------------------------------------------------------------- + +ensure: What state the package should be in: present | absent | latest | versionstring (1.0.3) +name: The package name as used by the packaging system + diff --git a/conf/types/__package/manifest b/conf/types/__package/manifest new file mode 100755 index 00000000..5ac1ae7b --- /dev/null +++ b/conf/types/__package/manifest @@ -0,0 +1,46 @@ +#!/bin/sh +# +# 2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# 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 . +# +# +# __package is an abstract type which dispatches to the lower level +# __package_$name types which do the actual interaction with the packaging +# system. +# + +. cdist-config + +object_id="$1"; shift + +if [ -f type ]; then + type="$(cat type)" +else + # Default to value taken from explorer + type="$(cat $__cdist_out_explorers/pkg_system)" +fi + +set -- "$@" "$object_id" +for property in $(ls .); do + if [ "$property" != "type" ]; then + set -- "$@" "--$property" "$(cat $property)" + fi +done + +__package_$type "$@" + +exit 0 diff --git a/conf/types/__package/parameters/optional b/conf/types/__package/parameters/optional new file mode 100644 index 00000000..d3598a51 --- /dev/null +++ b/conf/types/__package/parameters/optional @@ -0,0 +1,2 @@ +name +type diff --git a/conf/types/__package/parameters/required b/conf/types/__package/parameters/required new file mode 100644 index 00000000..5f0c1c12 --- /dev/null +++ b/conf/types/__package/parameters/required @@ -0,0 +1 @@ +ensure From 81823131b0e2943c6251d8a4b55faf84dec0a10b Mon Sep 17 00:00:00 2001 From: Steven Armstrong Date: Tue, 22 Feb 2011 16:19:02 +0100 Subject: [PATCH 4/4] +type:__package_emerge Signed-off-by: Steven Armstrong --- conf/types/__package_emerge/gencode | 38 +++++++++++++++++++ conf/types/__package_emerge/hints | 7 ++++ .../__package_emerge/parameters/optional | 1 + .../__package_emerge/parameters/required | 1 + 4 files changed, 47 insertions(+) create mode 100755 conf/types/__package_emerge/gencode create mode 100644 conf/types/__package_emerge/hints create mode 100644 conf/types/__package_emerge/parameters/optional create mode 100644 conf/types/__package_emerge/parameters/required diff --git a/conf/types/__package_emerge/gencode b/conf/types/__package_emerge/gencode new file mode 100755 index 00000000..e4313c5c --- /dev/null +++ b/conf/types/__package_emerge/gencode @@ -0,0 +1,38 @@ +#!/bin/sh +# +# 2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# 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 gentoo. +# + +. cdist-config + +object_id="$1"; shift + +if [ -f name ]; then + name="$(cat name)" +else + name="$object_id" +fi + + +# FIXME: super simple proof of concept +echo "emerge -q \"$name\"" + +exit 0 diff --git a/conf/types/__package_emerge/hints b/conf/types/__package_emerge/hints new file mode 100644 index 00000000..86282e3b --- /dev/null +++ b/conf/types/__package_emerge/hints @@ -0,0 +1,7 @@ +install/pacman: +pacman --noconfirm --noprogressbar -S +-------------------------------------------------------------------------------- + +ensure: What state the package should be in: present | absent | latest | versionstring (1.0.3) +name: The package name as used by the packaging system + diff --git a/conf/types/__package_emerge/parameters/optional b/conf/types/__package_emerge/parameters/optional new file mode 100644 index 00000000..f121bdbf --- /dev/null +++ b/conf/types/__package_emerge/parameters/optional @@ -0,0 +1 @@ +name diff --git a/conf/types/__package_emerge/parameters/required b/conf/types/__package_emerge/parameters/required new file mode 100644 index 00000000..5f0c1c12 --- /dev/null +++ b/conf/types/__package_emerge/parameters/required @@ -0,0 +1 @@ +ensure