diff --git a/core/__cdist_run_if_exists b/core/__cdist_run_if_exists new file mode 100755 index 00000000..d8c63d0d --- /dev/null +++ b/core/__cdist_run_if_exists @@ -0,0 +1,69 @@ +#!/bin/sh +# +# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org) +# 2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# 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 . +# +# +# Exec the code for the given object locally and remote +# + +__cdist_object_code_run() +{ + set -x + __cdist_object_code_run_object="$1"; shift + + # Code local + export __cdist_out_object_dir="$__cdist_out_object_dir" + __cdist_code_run "$__cdist_object_code_run_object" "${__cdist_name_gencode_local}" + + # Code remote + #__cdist_run_remote "__cdist_code_run" \ + # "$__cdist_object_code_run_object" "${__cdist_name_gencode_remote}" + __cdist_run_remote "echo" "__cdist_code_run" \ + "$__cdist_object_code_run_object" "${__cdist_name_gencode_remote}; exit 1" + + + # [ $# -eq 2 ] || __cdist_usage " " + + __cdist_object_code_run_object="$1"; shift + __cdist_code_type="$1"; shift + + if [ ! -d "$(__cdist_object_dir "$__cdist_object_code_run_object")" ]; then + __cdist_exit_err "Object undefined" + fi + + __cdist_code="$(__cdist_object_code "$__cdist_object_code_run_object" "${__cdist_code_type}")" + + __cdist_echo info "Checking code-${__cdist_code_type}" + + if [ -e "$__cdist_code" ]; then + if [ -f "$__cdist_code" ]; then + if [ -x "$__cdist_code" ]; then + __cdist_echo info "Executing code-${__cdist_code_type}" + __cdist_run_shell "$__cdist_code" + else + __cdist_exit_err "$__cdist_code exists, but is not executable." + fi + else + __cdist_exit_err "$__cdist_code exists, but is not a file." + fi + fi + + # Exit gracefully if nothing is todo + true +}