Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
This commit is contained in:
Nico Schottelius 2011-06-14 10:57:33 +02:00
parent 00bbadef78
commit 022db22924
4 changed files with 47 additions and 36 deletions

View file

@ -24,45 +24,50 @@
# and __type_explorers can be submitted :-) # and __type_explorers can be submitted :-)
# #
. cdist-config # FIXME: cleanup!
[ $# -eq 3 ] || __cdist_usage "<variable name> <explorer dir> <out dir>" __cdist_remote_explorer_run()
set -ue {
[ $# -eq 3 ] || __cdist_usage "<variable name> <explorer dir> <out dir>"
set -ue
# Variable that defines the home of the explorers "$__cdist_name_var_object=\"$(__cdist_remote_object_dir "$__cdist_object_self")\""
__cdist_variable_name="$1"; shift
# Find explorers here # Variable that defines the home of the explorers
__cdist_explorer_dir="$1"; shift __cdist_variable_name="$1"; shift
# Write output here # Find explorers here
__cdist_my_out_dir="$1"; shift __cdist_explorer_dir="$1"; shift
# Setup environment # Write output here
export $__cdist_variable_name="$__cdist_explorer_dir" __cdist_my_out_dir="$1"; shift
export __global="$__cdist_remote_out_dir"
mkdir -p "$__cdist_my_out_dir" # Setup environment
export $__cdist_variable_name="$__cdist_explorer_dir"
export __global="$__cdist_remote_out_dir"
# Ensure there is at least one explorer mkdir -p "$__cdist_my_out_dir"
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 # Ensure there is at least one explorer
for explorer in "$__cdist_explorer_dir/"*; do num="$(ls -1 "$__cdist_explorer_dir" | wc -l)"
explorer_name="${explorer##*/}" if [ "$num" -lt 1 ]; then
__cdist_exit_err "${__cdist_explorer_dir}: Contains no explorers"
if [ -f "$explorer" ]; then
if [ ! -x "$explorer" ]; then
__cdist_exit_err "Explorer \"$explorer\" exists, but is not executable."
fi
# Execute explorers and save results in remote destination directory
"$explorer" > "${__cdist_my_out_dir}/$explorer_name"
else
if [ -e "$explorer" ]; then
__cdist_exit_err "Explorer \"$explorer\" exists, but is not a file."
fi
fi fi
done
# Execute all explorers
for explorer in "$__cdist_explorer_dir/"*; do
explorer_name="${explorer##*/}"
if [ -f "$explorer" ]; then
if [ ! -x "$explorer" ]; then
__cdist_exit_err "Explorer \"$explorer\" exists, but is not executable."
fi
# Execute explorers and save results in remote destination directory
"$explorer" > "${__cdist_my_out_dir}/$explorer_name"
else
if [ -e "$explorer" ]; then
__cdist_exit_err "Explorer \"$explorer\" exists, but is not a file."
fi
fi
done
}

View file

@ -23,7 +23,6 @@
__cdist_code_run() __cdist_code_run()
{ {
[ $# -eq 2 ] || __cdist_usage "<object> <type>" [ $# -eq 2 ] || __cdist_usage "<object> <type>"
__cdist_object_self="$1"; shift __cdist_object_self="$1"; shift
@ -49,4 +48,7 @@ __cdist_code_run()
__cdist_exit_err "$__cdist_code exists, but is not a file." __cdist_exit_err "$__cdist_code exists, but is not a file."
fi fi
fi fi
# Exit gracefully if nothing is todo
true
} }

View file

@ -28,7 +28,6 @@
__cdist_object_gencode() __cdist_object_gencode()
{ {
__cdist_myname="foo"
[ $# -eq 2 ] || __cdist_usage "<object>" "<type>" [ $# -eq 2 ] || __cdist_usage "<object>" "<type>"
__cdist_object_self="$1"; shift __cdist_object_self="$1"; shift

View file

@ -38,6 +38,8 @@ __cdist_object_run()
# Export to non-core for use in manifest and gencode scripts # Export to non-core for use in manifest and gencode scripts
export $__cdist_name_var_self=$__cdist_object_self export $__cdist_name_var_self=$__cdist_object_self
# FIXME: BUG: should be named differently!
# FIXME: BUG: I can be called recursively! -> variables are probably already set / overwritten!
__cdist_object_finished="$(__cdist_object_finished "$__cdist_object_self")" __cdist_object_finished="$(__cdist_object_finished "$__cdist_object_self")"
if [ ! -f "$__cdist_object_finished" ]; then if [ ! -f "$__cdist_object_finished" ]; then
# Resolve dependencies, if any # Resolve dependencies, if any
@ -52,9 +54,12 @@ __cdist_object_run()
__cdist_requirement="$1"; shift __cdist_requirement="$1"; shift
__cdist_echo info "Resolving requirement $__cdist_requirement" __cdist_echo info "Resolving requirement $__cdist_requirement"
__cdist_object_run "$__cdist_requirement" __cdist_object_run "$__cdist_requirement"
echo "done run"
done done
fi fi
echo "after done"
__cdist_object_gencode_run "$__cdist_object_self" __cdist_object_gencode_run "$__cdist_object_self"
__cdist_dir push "$(__cdist_object_dir "$__cdist_object_self")" \ __cdist_dir push "$(__cdist_object_dir "$__cdist_object_self")" \
"$(__cdist_remote_object_dir "$__cdist_object_self")" "$(__cdist_remote_object_dir "$__cdist_object_self")"