From 847054c77dfb0f8abb5ccf7e74715017720ac900 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Sun, 19 Sep 2010 13:52:00 +0200 Subject: [PATCH] finish cdist-explore Signed-off-by: Nico Schottelius --- INTRO | 21 +++++++++++++++++++++ bin/cdist-explore | 43 +++++++++++++++++++++++++++---------------- lib/cdist_explore_os | 29 +++++++++++++++++++++++++++++ lib/cdist_package | 26 ++++++++++++++++++++++++++ 4 files changed, 103 insertions(+), 16 deletions(-) create mode 100755 lib/cdist_explore_os create mode 100644 lib/cdist_package diff --git a/INTRO b/INTRO index 357774be..2c4fe0d0 100644 --- a/INTRO +++ b/INTRO @@ -29,6 +29,9 @@ What do I need from puppet? - the DSL - with many bugs - templates + - Client/Server approach is nice to have + - Clients only get the part of the documentation, that's + relevant to them -------------------------------------------------------------------------------- What do I miss from puppet? @@ -62,12 +65,30 @@ Simple stuff done by Unix[notm] - "manifests" (use the same name here?) will be run/sourced - inheritance possible via sourcing - cdist-lib always preloaded + - library == functions? - version control via git - file distribution via ssh - authentication via ssh - dumb clients, similar to manifest compile in puppet - clients just execute commands - dependencies via make? + - how to ensure sigletons / conflicting definitions? + file { "/a": + ensure => present, + file { "/a": + ensure => absent, + - matching on explored items, not only on host name? + - match function in host? [optional] + - file source: + - relative to specification + - or absolute + + +-------------------------------------------------------------------------------- +Architecture + + + -------------------------------------------------------------------------------- Implementation diff --git a/bin/cdist-explore b/bin/cdist-explore index a624d53e..64cb1607 100755 --- a/bin/cdist-explore +++ b/bin/cdist-explore @@ -1,19 +1,30 @@ #!/bin/sh -# output or sourcable +# +# 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 . +# +# -# OS -cdist_explore_os() -{ - [ -f /etc/arch-release ] && echo archlinux +reports="os" - [ -f /etc/debian_version ] && echo debian - - grep -q ^DISTRIB_ID=Ubuntu /etc/lsb-release 2>/dev/null && echo ubuntu - -} - -# could work, if cdist_explore_os would be a different program -# nope, does not work, set -x output is not sourcable... -[ "$1" = "-o" ] && set -x - -CDIST_OS="$(cdist_explore_os)" +for report in $reports; do + func="cdist_explore_$report" + var="__cdist_$report" + . "../lib/$func" + eval $var=\"\$\($func\)\" + eval echo $var=\\\"\$$var\\\" +done diff --git a/lib/cdist_explore_os b/lib/cdist_explore_os new file mode 100755 index 00000000..1d67c3f0 --- /dev/null +++ b/lib/cdist_explore_os @@ -0,0 +1,29 @@ +#!/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_explore_os() +{ + [ -f /etc/arch-release ] && echo archlinux + + [ -f /etc/debian_version ] && echo debian + + grep -q ^DISTRIB_ID=Ubuntu /etc/lsb-release 2>/dev/null && echo ubuntu +} diff --git a/lib/cdist_package b/lib/cdist_package new file mode 100644 index 00000000..d7c1e4c6 --- /dev/null +++ b/lib/cdist_package @@ -0,0 +1,26 @@ +#!/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_package() +{ + + +}