remove now obsolete core directory

Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
This commit is contained in:
Nico Schottelius 2011-09-11 21:34:24 +02:00
parent 264a76ca2f
commit c0ab4cdd8d
26 changed files with 0 additions and 1182 deletions

View File

@ -1,34 +0,0 @@
#!/bin/sh
#
# 2010 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/>.
#
#
# Save the configuration tree into the local cache
#
__cdist_cache()
{
# Create base to move into
mkdir -p "${__cdist_local_base_cache_dir}"
__cdist_echo info \
"Caching to $(__cdist_host_cache_dir "$__cdist_target_host")"
rm -rf "$(__cdist_host_cache_dir "$__cdist_target_host")"
mv "$__cdist_local_base_dir" \
"$(__cdist_host_cache_dir "$__cdist_target_host")"
}

View File

@ -1,46 +0,0 @@
#!/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/>.
#
#
# Push a directory to a target, both sides have the same name (i.e. explorers)
# or
# Pull a directory from a target, both sides have the same name (i.e. explorers)
#
__cdist_dir()
{
[ $# -eq 3 ] || __cdist_usage "<push|pull> <src dir> <dst dir>"
# ${3%/*} will be the destination directory, so no subdirectories
# of the same name are created, if the directory is already existing
if [ "$1" = "push" ]; then
# FIXME: add error handling with __cdist_run_remote_... or so
ssh "${__cdist_remote_user}@${__cdist_target_host}" \
"mkdir -p \"$3\""
scp -qr "$2" \
"${__cdist_remote_user}@${__cdist_target_host}:${3%/*}"
elif [ "$1" = "pull" ]; then
mkdir -p "$3"
scp -qr "${__cdist_remote_user}@${__cdist_target_host}:$2" \
"${3%/*}"
else
__cdist_exit_err "Unknown action $1"
fi
}

View File

@ -1,30 +0,0 @@
#!/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/>.
#
#
# List files in a directory, if it exists
#
# We only create output, if there's at least one entry
# and can thus be used as a boolean ;-)
#
__cdist_dir_listing()
{
[ -d "$1" ] && ls -1 "$1"
}

View File

@ -1,56 +0,0 @@
#!/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/>.
#
#
# echo / syslog alike function
#
__cdist_echo()
{
__cdist_echo_type="$1"; shift
set +u
if [ "$__cdist_object_self" ]; then
__cdist_echo_prefix="${__cdist_object_self}:"
else
__cdist_echo_prefix="core: "
fi
set -u
case "$__cdist_echo_type" in
debug)
if [ "$__cdist_debug" = 1 ]; then
echo $__cdist_echo_prefix "DEBUG: $@"
fi
;;
info)
echo $__cdist_echo_prefix "$@"
;;
warn)
echo $__cdist_echo_prefix "Warning: $@"
;;
error)
echo $__cdist_echo_prefix "Error: $@" >&2
;;
*)
echo "CORE BUG, who created the broken commit in $0?" >&2
exit 23
;;
esac
}

View File

@ -1,28 +0,0 @@
#!/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/>.
#
#
# Print error and exit (perror() alike)
#
__cdist_exit_err()
{
__cdist_echo error "$@"
exit 1
}

View File

@ -1,79 +0,0 @@
#!/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/>.
#
#
# Run explorers - FIXME: this function is ugly
#
__cdist_explorer_run()
{
[ $# -eq 5 ] || __cdist_usage "<global|type> <local explorer dir> <remote explorer dir> <remote out dir> <local 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
# Check whether to setup variable for type explorer
case "$1" in
global)
;;
type)
# FIXME: think about how and where this gets setup!
"$__cdist_name_var_object=\"$(__cdist_remote_object_dir "$__cdist_object_self")\""
;;
esac
# Transfer explorers
__cdist_dir push "$2" "$3"
# Create output directory
__cdist_run_remote mkdir -p "$4"
# Execute all explorers - FIXME: isolate cd call?
cd "$2";
# FIXME: cleanup double variable, no need when in directory
for __cdist_explorer_run_explorer in *; do
__cdist_explorer_explorer_name="${__cdist_explorer_run_explorer##*/}"
if [ -f "$__cdist_explorer_run_explorer" ]; then
if [ ! -x "$__cdist_explorer_run_explorer" ]; then
__cdist_exit_err "Explorer \"$__cdist_explorer_run_explorer\" exists, but is not executable."
fi
else
if [ -e "$__cdist_explorer_run_explorer" ]; then
__cdist_exit_err "Explorer \"$__cdist_explorer_run_explorer\" exists, but is not a file."
fi
fi
# FIXME: no need for remote out dir probably?
# or should we leave it and continue using __cdist_dir pull?
__cdist_run_remote \
"export $__cdist_name_var_explorer=\"$__cdist_remote_explorer_dir\";" \
"export $__cdist_name_var_global=\"$__cdist_remote_out_dir\";" \
"$3/$__cdist_explorer_run_explorer" ">" \
"$4/$__cdist_explorer_run_explorer" || \
__cdist_exit_err "Explorer $__cdist_explorer_run_explorer failed."
done
# Transfer results back
__cdist_dir pull "$4" "$5"
}

View File

@ -1,32 +0,0 @@
#!/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/>.
#
#
# Copy & run the global explorers, i.e. not bound to types
#
__cdist_explorer_run_global()
{
__cdist_echo info "Running global explorers "
# run the global explorers remotely
__cdist_explorer_run global \
"$__cdist_explorer_dir" "$__cdist_remote_explorer_dir" \
"$__cdist_remote_out_explorer_dir" "$__cdist_out_explorer_dir"
}

View File

@ -1,44 +0,0 @@
#!/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/>.
#
#
# Test whether something is executable (that should be executable) or
# is missing
#
__cdist_is_executable()
{
[ $# -eq 1 ] || __cdist_exit_err "<executable>"
if [ -e "$1" ]; then
if [ -f "$1" ]; then
if [ -x "$1" ]; then
# Exists and is a correct executable
true
else
__cdist_exit_err "$1 exists, but is not executable."
fi
else
__cdist_exit_err "$1 exists, but is not a file."
fi
else
# Does not exist
false
fi
}

View File

@ -1,31 +0,0 @@
#!/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/>.
#
#
# Run the given command for each created object.
#
# Does not work in children, will be called again in every script!
# Use only in interactive "front end" scripts
__cdist_kill_on_interrupt()
{
__cdist_tmp_removal
kill 0
exit 1
}

View File

@ -1,53 +0,0 @@
#!/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/>.
#
#
# Let's build a cconfig tree from a configuration
# And save it into the cache tree
#
__cdist_manifest_run()
{
[ $# -eq 1 ] || __cdist_usage "<manifest>"
__cdist_manifest="$1"; shift
################################################################################
# Export information for cdist-type-emulator or manifest
#
# Config dir should not get reset - FIXME: why did I do this?
export __cdist_conf_dir
# Used to record the source in the object
export __cdist_manifest
# Export information for manifests - __cdist_out_dir comes from cdist-config
export $__cdist_name_var_global="$__cdist_out_dir"
################################################################################
# The actual run
#
# Ensure binaries are existing - FIXME: move error handling into __cdist_type_build_emulation
__cdist_type_build_emulation \
|| __cdist_exit_err "Failed to build type emulation binaries"
__cdist_run_shell "${__cdist_manifest}"
}

View File

@ -1,32 +0,0 @@
#!/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/>.
#
#
# Let's build a cconfig tree from a configuration
# And save it into the cache tree
#
__cdist_manifest_run_init()
{
# FIXME: probably do not export but always set explicitly?
export $__cdist_name_var_manifest="$__cdist_manifest_dir"
__cdist_echo info "Running initial manifest for $__cdist_target_host "
__cdist_manifest_run "$__cdist_manifest_init"
}

View File

@ -1,60 +0,0 @@
#!/bin/sh
#
# 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 <http://www.gnu.org/licenses/>.
#
#
# Run the given command for each created object.
#
__cdist_object_all()
{
[ $# -eq 1 ] || __cdist_usage "<command>"
__cdist_object_all_object_all_command="$1"; shift
__cdist_object_all_object_all_objects="$__cdist_tmp_dir/objects"
# Ensure object dir exists, so marker can be created
mkdir -p "${__cdist_out_object_dir}"
# FIXME: : - why do we use a file?
# core/__cdist_object_manifest_run: touch "$__cdist_objects_created"
# Loop until we do not create new objects anymore
# which is equal to all objects have been run
touch "$__cdist_objects_created"
while [ -f "$__cdist_objects_created" ]; do
# Assume we're done after this run
rm "$__cdist_objects_created"
# Get listing of objects
__cdist_object_list "$__cdist_out_object_dir" > \
"$__cdist_object_all_object_all_objects"
# NEED TO CREATE ARRAY, SSH DESTROYS WHILE READ LOOP
while read __cdist_object_all_object; do
set -- "$@" "$__cdist_object_all_object"
done < "$__cdist_object_all_object_all_objects"
while [ $# -gt 0 ]; do
__cdist_object_all_object="$1"; shift
$__cdist_object_all_object_all_command "$__cdist_object_all_object"
done
done
}

View File

@ -1,54 +0,0 @@
#!/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 <http://www.gnu.org/licenses/>.
#
#
# Exec the code for the given object locally and remote
#
__cdist_object_code_run()
{
[ $# -eq 1 ] || __cdist_exit_err "<object>"
if [ ! -d "$(__cdist_object_dir "$1")" ]; then
__cdist_exit_err "Object undefined"
fi
# Code local
export __cdist_out_object_dir="$__cdist_out_object_dir"
__cdist_echo debug "Trying to run local code"
if __cdist_is_executable \
"$(__cdist_object_code "$1" "${__cdist_name_gencode_local}")"; then
__cdist_run_shell \
"$(__cdist_object_code "$1" "${__cdist_name_gencode_local}")"
else
__cdist_echo debug "Local code: none"
fi
# Code remote
__cdist_echo debug "Trying to run remote code"
if __cdist_is_executable \
"$(__cdist_object_code "$1" "${__cdist_name_gencode_remote}")"; then
__cdist_run_remote $(__cdist_remote_object_code "$1")
else
__cdist_echo debug "Remote code: none"
fi
}

View File

@ -1,89 +0,0 @@
#!/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 <http://www.gnu.org/licenses/>.
#
#
# Run the explorers for the given object on the target host.
#
# FIXME: many cleanups needed before going production!
__cdist_object_explorer_run()
{
__cdist_object_self="$1"; shift
__cdist_object_id="$(__cdist_object_id_from_object "$__cdist_object_self")"
__cdist_type="$(__cdist_type_from_object "$__cdist_object_self")"
# Check if type of object has >= 1 explorer
__cdist_has_explorer="$(__cdist_dir_listing "$(__cdist_type_explorer_dir "$__cdist_type")" | wc -l)"
# Run the type explorers for the current object if any
if [ "$__cdist_has_explorer" -ge 1 ]; then
if ! __cdist_type_explorer_pushed "$__cdist_type"; then
# FIXME: variables!
src_dir="$(__cdist_type_explorer_dir "$__cdist_type")"
dst_dir="$(__cdist_remote_type_explorer_dir "$__cdist_type")"
__cdist_echo info "Transfering explorers for $__cdist_type "
__cdist_dir push "$src_dir" "$dst_dir"
__cdist_type_explorer_pushed_add "$__cdist_type"
fi
__cdist_echo info "Running explorers"
# Copy object parameters
__cdist_dir push \
"$(__cdist_object_parameter_dir "$__cdist_object_self")" \
"$(__cdist_remote_object_parameter_dir "$__cdist_object_self")"
# Execute explorers
# FIXME: STOPPED:
# - remove cdist-remote-explorer-run
# - problem: new variables / need to run explorer directly?
# -> or put logic into __cdist_explorer_run
# -> think about having _one_ wrapper script for remote to execute
# shell functions
# Create remote output directory
__cdist_run_remote mkdir -p "$(__cdist_remote_object_type_explorer_dir "$__cdist_object_self")"
cd "$(__cdist_type_explorer_dir "$__cdist_type")"
for __cdist_object_explorer_run_explorer in *; do
__cdist_run_remote \
"$__cdist_name_var_object=\"$(__cdist_remote_object_dir "$__cdist_object_self")\"" \
"$__cdist_name_var_object_id=\"$__cdist_object_id\"" \
"$__cdist_name_var_self=\"$__cdist_object_self\"" \
"$(__cdist_remote_type_explorer_dir "$__cdist_type")/$__cdist_object_explorer_run_explorer" \
">" "$(__cdist_remote_object_type_explorer_dir "$__cdist_object_self")/$__cdist_object_explorer_run_explorer"
done
# __cdist_run_remote \
# "$__cdist_name_var_object=\"$(__cdist_remote_object_dir "$__cdist_object_self")\"" \
# "$__cdist_name_var_object_id=\"$__cdist_object_id\"" \
# "$__cdist_name_var_self=\"$__cdist_object_self\"" \
# cdist-remote-explorer-run \
# "$__cdist_name_var_type_explorer" \
# "$(__cdist_remote_type_explorer_dir "$__cdist_type")" \
# "$(__cdist_remote_object_type_explorer_dir "$__cdist_object_self")"
# Copy back results
__cdist_dir pull "$(__cdist_remote_object_type_explorer_dir "$__cdist_object_self")" \
"$(__cdist_object_type_explorer_dir "$__cdist_object_self")"
fi
}

View File

@ -1,66 +0,0 @@
#!/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/>.
#
#
# Generate code from one object (object must be relative path!)
# WARNING: OUTPUT ON STDOUT, ERRORS NEED TO BE ON STDERR!
#
# FIXME: check variable names:
# either prefix or use global or use functions directly
# functions looks good, they are cheap anyway!
__cdist_object_gencode()
{
[ $# -eq 2 ] || __cdist_usage "<object>" "<type>"
__cdist_object_self="$1"; shift
__cdist_gencode_type="$1"; shift
__cdist_type="$(__cdist_type_from_object "$__cdist_object_self")"
__cdist_type_gencode="$(__cdist_type_gencode "$__cdist_type" "$__cdist_gencode_type")"
__cdist_code_output="$(__cdist_object_code "$__cdist_object_self" "$__cdist_gencode_type")"
# export variables for the gencode script
export __object_id="$(__cdist_object_id_from_object "$__cdist_object_self")"
export __object="$(__cdist_object_dir "$__cdist_object_self")"
export __global="$__cdist_out_dir"
if [ -x "$__cdist_type_gencode" ]; then
__cdist_run_shell "$__cdist_type_gencode" > "$__cdist_tmp_file"
else
if [ -e "$__cdist_type_gencode" ]; then
__cdist_exit_err "$__cdist_type_gencode exists, but is not executable"
fi
# Ensure it's empty, if there is no gencode
: > "$__cdist_tmp_file"
fi
# Only create code, if gencode created output
if [ "$(wc -l < "$__cdist_tmp_file")" -gt 0 ]; then
cat - "$__cdist_tmp_file" << eof > "$__cdist_code_output"
#
# The following code was generated by $__cdist_type_gencode
#
eof
chmod u+x "${__cdist_code_output}"
fi
}

View File

@ -1,36 +0,0 @@
#!/bin/sh
#
# 2010 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 <http://www.gnu.org/licenses/>.
#
#
# For the given object create the code to be executed on the target.
#
__cdist_object_gencode_run()
{
__cdist_object_gencode_run_object="$1"; shift
__cdist_echo info "Generating local code "
__cdist_object_gencode "$__cdist_object_gencode_run_object" \
"${__cdist_name_gencode_local}"
__cdist_echo info "Generating remote code "
__cdist_object_gencode "$__cdist_object_gencode_run_object" \
"${__cdist_name_gencode_remote}"
}

View File

@ -1,36 +0,0 @@
#!/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/>.
#
#
# Print error and exit (perror() alike)
#
__cdist_object_list()
{
# FIXME: no local in posix
local basedir="$1"; shift
# Use subshell to prevent changing cwd in program
(
cd "${basedir}"
find . -name "$__cdist_name_dot_cdist" | \
sed -e 's;^./;;' -e "s;/${__cdist_name_dot_cdist}\$;;"
)
}

View File

@ -1,59 +0,0 @@
#!/bin/sh
#
# 2010 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 <http://www.gnu.org/licenses/>.
#
#
# Run the manifest for the given object.
#
__cdist_object_manifest_run()
{
[ $# -eq 1 ] || __cdist_usage "<object>"
__cdist_object_self="$1"; shift
# FIXME: rename to __cdist_object_dir (everywhere!)
__cdist_cur_object_dir="$(__cdist_object_dir "$__cdist_object_self")"
__cdist_object_id="$(__cdist_object_id_from_object "$__cdist_object_self")"
__cdist_echo info "Checking manifest "
__cdist_type="$(__cdist_type_from_object "$__cdist_object_self")"
__cdist_manifest="$(__cdist_type_manifest "$__cdist_type")"
if [ -f "$__cdist_manifest" ]; then
if [ -x "$__cdist_manifest" ]; then
# Make __cdist_manifest available for cdist-type-emulator
export __cdist_manifest
__cdist_echo info "Executing manifest "
export $__cdist_name_var_object="$__cdist_cur_object_dir"
export $__cdist_name_var_object_id="$__cdist_object_id"
export $__cdist_name_var_type="$(__cdist_type_dir "$__cdist_type")"
__cdist_manifest_run "$__cdist_manifest"
# Tell cdist-object-run-all that there may be new objects
touch "$__cdist_objects_created"
else
__cdist_exit_err "${__cdist_manifest} needs to be executable."
fi
fi
}

View File

@ -1,47 +0,0 @@
#!/bin/sh
#
# 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 <http://www.gnu.org/licenses/>.
#
#
# For the given object:
# - run type explorers
# - run type manifest
#
__cdist_object_prepare()
{
[ $# -eq 1 ] || __cdist_usage "<object>"
__cdist_object_self="$1"; shift
__cdist_object_dir="$(__cdist_object_dir "$__cdist_object_self")"
[ -d "$__cdist_object_dir" ] || __cdist_exit_err "Object undefined"
# Export to non-core for use in manifest and gencode scripts
export $__cdist_name_var_self=$__cdist_object_self
__cdist_object_prepared="$(__cdist_object_prepared "$__cdist_object_self")"
if [ ! -f "$__cdist_object_prepared" ]; then
__cdist_echo info "Preparing object"
__cdist_object_explorer_run "$__cdist_object_self"
__cdist_object_manifest_run "$__cdist_object_self"
# Mark this object as prepared
touch "$__cdist_object_prepared"
fi
}

View File

@ -1,74 +0,0 @@
#!/bin/sh
#
# 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 <http://www.gnu.org/licenses/>.
#
#
# For the given object:
# - run type explorers
# - run type manifest
# - generate code
# - copy object to target
# - execute code on target
#
__cdist_object_run()
{
[ $# -eq 1 ] || __cdist_usage "<object>"
__cdist_object_self="$1"; shift
__cdist_object_dir="$(__cdist_object_dir "$__cdist_object_self")"
[ -d "$__cdist_object_dir" ] || __cdist_exit_err "Object undefined"
# Export to non-core for use in manifest and gencode scripts
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")"
if [ ! -f "$__cdist_object_finished" ]; then
# Resolve dependencies, if any
__cdist_object_require="$(__cdist_object_require "$__cdist_object_self")"
if [ -f "$__cdist_object_require" ]; then
# NEED TO CREATE ARRAY, SSH DESTROYS WHILE READ LOOP
while read __cdist_requirement; do
set -- "$@" "$__cdist_requirement"
done < "$__cdist_object_require"
while [ $# -gt 0 ]; do
__cdist_requirement="$1"; shift
__cdist_echo info "Resolving requirement $__cdist_requirement"
# FIXME: BUG: at this point, the other __cdist_object_run may have
# overwritten all our variables!
__cdist_object_run "$__cdist_requirement"
done
fi
__cdist_echo debug "Before gencode"
__cdist_object_gencode_run "$__cdist_object_self"
__cdist_echo debug "Before push"
__cdist_dir push "$(__cdist_object_dir "$__cdist_object_self")" \
"$(__cdist_remote_object_dir "$__cdist_object_self")"
__cdist_echo debug "Before run"
__cdist_object_code_run "$__cdist_object_self"
__cdist_echo debug "Object run done"
# Mark this object as done
touch "$__cdist_object_finished"
fi
}

View File

@ -1,27 +0,0 @@
#!/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/>.
#
#
# Exit if an error occurs running something
#
__cdist_run()
{
"$@" || __cdist_echo error "$1 exited non-zero, aborting."
}

View File

@ -1,32 +0,0 @@
#!/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/>.
#
#
# Run a cdist binary on the remote side
#
__cdist_run_remote()
{
[ $# -ge 1 ] || __cdist_usage "<binary> [opts]"
ssh "${__cdist_remote_user}@${__cdist_target_host}" \
"export PATH=\"${__cdist_remote_bin_dir}:\$PATH\";" \
"export __cdist_out_object_dir=\"$__cdist_remote_out_object_dir\";" \
"$@"
}

View File

@ -1,34 +0,0 @@
#!/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/>.
#
#
# Exit if an error occurs when running a shell script
#
__cdist_run_shell()
{
# Prepend our path, so all cdist tools come before other tools
PATH="${__cdist_out_type_bin_dir}:$PATH" sh -e "$@"
if [ "$?" -ne 0 ]; then
__cdist_echo error "$1 exited non-zero"
__cdist_echo warn "Faulty code:"
cat "$1"
__cdist_exit_err "Aborting due to non-zero exit code."
fi
}

View File

@ -1,27 +0,0 @@
#!/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/>.
#
#
# Remove tmp dir
#
__cdist_tmp_removal()
{
rm -rf "${__cdist_tmp_dir}"
}

View File

@ -1,49 +0,0 @@
#!/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/>.
#
# Build pseudo binaries for type emulation
#
__cdist_type_build_emulation()
{
[ $# -eq 0 ] || __cdist_usage "No arguments"
[ -f "${__cdist_out_type_bin_dir}/.marker" ] && return 0
__cdist_type_emulator="$__cdist_abs_mydir/cdist-type-emulator"
if [ ! -d "${__cdist_type_dir}" ]; then
__cdist_exit_err "$__cdist_type_dir must exist and contain available types"
fi
# Get Types
(
cd "${__cdist_type_dir}"
ls -1 > "${__cdist_tmp_file}"
)
# Create binaries
mkdir -p "${__cdist_out_type_bin_dir}"
while read __cdist_type_build_emulation_type; do
ln -sf "${__cdist_type_emulator}" \
"${__cdist_out_type_bin_dir}/${__cdist_type_build_emulation_type}"
done < "${__cdist_tmp_file}"
touch "${__cdist_out_type_bin_dir}/.marker"
}

View File

@ -1,27 +0,0 @@
#!/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/>.
#
#
# Print error and exit (perror() alike)
#
__cdist_usage()
{
__cdist_exit_err "$__cdist_myname: $@"
}