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}" diff --git a/conf/manifests/init b/conf/manifests/init index a64be309..376c675d 100755 --- a/conf/manifests/init +++ b/conf/manifests/init @@ -13,4 +13,9 @@ case "$__cdist_target_host" in __package qemu-kvm --wtf installed __package tftpd-hpa --fancyoption installed ;; + + icarus) + __package tree --ensure installed + ;; + esac 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 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