Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>remotes/origin/1.0
parent
5017119132
commit
2d7f155d1d
@ -0,0 +1,86 @@ |
||||
#!/bin/sh |
||||
# |
||||
# 2010-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 <http://www.gnu.org/licenses/>. |
||||
# |
||||
# |
||||
# Run the global explorers, i.e. not bound to types |
||||
# |
||||
|
||||
. cdist-config |
||||
[ $# -eq 2 ] || __cdist_usage "<target host> <outdir>" |
||||
set -ue |
||||
|
||||
export __cdist_target_host="$1"; shift |
||||
export __cdist_output_dir="$1"; shift |
||||
|
||||
# create basedir |
||||
ssh root@${__cdist_target_host} "mkdir -p \"${__cdist_remote_base_dir}\" \ |
||||
\"${__cdist_remote_cache_dir}\" \"${__cdist_remote_cache_bin}\" \ |
||||
\"${__cdist_remote_cache_explorer}\"" |
||||
|
||||
# Transfer all explorers to the target dir - must be one level above, so |
||||
# coyping it multiple times works: a -> remote:/base/ = remote:/base/a vs. |
||||
# a -> remote:/base/a = remote:/base/a/a (second copy) |
||||
|
||||
# FIXME: enable -q as soon as the code is cleaned up |
||||
scp -r "${__cdist_explorer_dir}" \ |
||||
"root@${__cdist_target_host}:${__cdist_remote_base_dir}" |
||||
|
||||
# Transfer cdist binaries - FIXME: should transfer all (needed?) of them! |
||||
scp "$(which cdist-explorer-coordinator)" "$(which cdist-config)" \ |
||||
"root@${__cdist_target_host}:${__cdist_remote_cache_bin}" |
||||
|
||||
# Execute explorer coordinator, which will save results on target |
||||
ssh root@${__cdist_target_host} \ |
||||
"PATH=\"${__cdist_remote_cache_bin}:\$PATH\" |
||||
\"${__cdist_remote_cache_bin}/cdist-explorer-coordinator\" \ |
||||
\"${__cdist_remote_explorer_dir}\" \"${__cdist_remote_cache_explorer}\"" |
||||
|
||||
# Ensure local destination directory exists |
||||
mkdir -p "$__cdist_output_dir" |
||||
|
||||
# FIXME: enable -q as soon as the code is cleaned up |
||||
# Transfer back all results - FIXME: Add 2 level cache, so old version is kept until success |
||||
scp -r "root@${__cdist_target_host}:${__cdist_remote_cache_explorer}/*" \ |
||||
"$__cdist_output_dir" |
||||
|
||||
|
||||
exit 0 |
||||
|
||||
# -------------------------------------------------------------------------------- |
||||
# old idea with shell scripts (also sexy) |
||||
# Keep until above version successfully works |
||||
|
||||
|
||||
cd "${__cdist_explorer_dir}" |
||||
ls > "${__cdist_tmp_file}" |
||||
|
||||
# first load all functions |
||||
while read funcfull; do |
||||
cat "${funcfull}" |
||||
done < "${__cdist_tmp_file}" |
||||
|
||||
# then execute functions |
||||
while read funcfull; do |
||||
sh="${funcfull##*/}" |
||||
func="${sh%.sh}" |
||||
var="__$func" |
||||
|
||||
echo "$var=\"\$($func)\"" |
||||
echo "echo $var=\\\"\$$var\\\"" |
||||
done < "${CDIST_TMP}" |
Loading…
Reference in new issue