#!/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 . # # # This binary is executed on the remote side to execute explorers # . cdist-config if [ $# -lt 3 ]; then __cdist_usage " [explorer args]" fi set -ue # cd to this dir __cdist_work_dir="$1"; shift # find explorers here __cdist_explorer_dir="$1"; shift # write output here __cdist_my_out_dir="$1"; shift 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