2 changed files with 74 additions and 0 deletions
@ -0,0 +1,74 @@
|
||||
#!/bin/sh |
||||
# |
||||
# 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/>. |
||||
# |
||||
# |
||||
# This binary is executed on the remote side to execute explorers |
||||
# |
||||
# It supports different variables names to be used, so __explorers |
||||
# and __type_explorers can be submitted :-) |
||||
# |
||||
|
||||
. cdist-config |
||||
if [ $# -ne 3 ]; then |
||||
__cdist_usage "<variable name> <explorer dir> <out dir>" |
||||
fi |
||||
set -ue |
||||
|
||||
# Variable that defines the home of the explorers |
||||
__cdist_variable_name="$1"; shift |
||||
|
||||
# Find explorers here |
||||
__cdist_explorer_dir="$1"; shift |
||||
|
||||
# Write output here |
||||
__cdist_my_out_dir="$1"; shift |
||||
|
||||
# cd to this dir |
||||
__cdist_work_dir="$__cdist_remote_base_dir" |
||||
|
||||
# Setup environment |
||||
export $__cdist_variable_name="$__cdist_explorer_dir" |
||||
cd "${__cdist_work_dir}" |
||||
mkdir -p "$__cdist_my_out_dir" |
||||
|
||||
# Ensure there is at least one explorer |
||||
num="$(ls -1 "$__cdist_explorer_dir" | wc -l)" |
||||
if [ "$num" -lt 1 ]; then |
||||
__cdist_exit_err "${__cdist_explorer_dir}: Contains no explorers" |
||||
fi |
||||
|
||||
# Execute all explorers |
||||
for explorer in "$__cdist_explorer_dir/"*; do |
||||
explorer_name="${explorer##*/}" |
||||
|
||||
if [ -f "$explorer" ]; then |
||||
if [ ! -x "$explorer" ]; then |
||||
echo "Explorer \"$explorer\" exists, but is not executable." |
||||
continue |
||||
fi |
||||
|
||||
# Execute explorers and save results in remote destination directory |
||||
"$explorer" "$@" > "${__cdist_my_out_dir}/$explorer_name" |
||||
else |
||||
if [ -e "$explorer" ]; then |
||||
echo "Explorer \"$explorer\" exists, but is not a file." |
||||
continue |
||||
fi |
||||
fi |
||||
done |
Loading…
Reference in new issue