diff --git a/tools/add_source.sh b/tools/add_source.sh index dc8f05a..29fdf81 100755 --- a/tools/add_source.sh +++ b/tools/add_source.sh @@ -11,28 +11,25 @@ CSOURCES="${CCOLLECT_CONF}/sources" CDEFAULTS="${CCOLLECT_CONF}/defaults" SCONFIG="${CDEFAULTS}/sources" -exclude="${SCONFIG}/exclude" -summary="${SCONFIG}/summary" -intervals="${SCONFIG}/intervals" - -pre_exec="${SCONFIG}/pre_exec" -post_exec="${SCONFIG}/post_exec" - -rsync_options="${SCONFIG}/rsync_options" - -verbose="${SCONFIG}/verbose" -vverbose="${SCONFIG}/very_verbose" +# standard options: variable2filename +exclude="exclude" +summary="summary" +intervals="intervals" +pre_exec="pre_exec" +post_exec="post_exec" +rsync_options="rsync_options" +verbose="verbose" +very_verbose="very_verbose" # options that we simply copy over standard_opts="exclude summary intervals pre_exec post_exec rsync_options verbose very_verbose" -# options not in standard ccollect, used only for source -# generation +# options not in standard ccollect, used only for source generation src_prefix="${SCONFIG}/source_prefix" src_postfix="${SCONFIG}/source_postfix" destination_base="${SCONFIG}/destination_base" -self=$(basename $0) +self="$(basename $0)" # functions first _echo() @@ -54,25 +51,54 @@ fi while [ $# -gt 0 ]; do + source="$1"; shift + + # Create + _echo "Creating ${source} ..." + + fullname="${CSOURCES}/${source}" + + # create source + if [ -e "${fullname}" ]; then + _echo "${fullname} already exists. Skipping." + continue + fi + mkdir -p "${fullname}" || _exit_err Cannot create \"${fullname}\". + + # copy standard files + for file in $standard_opts; do + eval rfile=\"\$$file\" + echo r: $rfile + eval filename=${SCONFIG}/${rfile} + echo f: $filename + if [ -e "${filename}" ]; then + _echo Copying $rfile for $source ... + cp -r "${filename}" "${fullname}/${rfile}" + fi + done + + # create source entry + if [ -f "${src_prefix}" ]; then + source_source="$(cat "${src_prefix}")" || _exit_err "Reading $src_prefix failed." + fi + source_source="${source_source}${source}" + if [ -f "${src_postfix}" ]; then + source_source="${source_source}$(cat "${src_postfix}")" || _exit_err "Reading $src_postfix failed." + fi + _echo "Adding ${source_source} as source for ${source}" + echo "${source_source}" > "${fullname}/source" + + # create destination directory + dest="${destination_base}/${source}" + _echo "Creating destination ${dest} ..." + mkdir -p "${dest}" || _exit_err "${fullname}: Cannot create ${dest}." + done -# create source -# Tests -if [ -e "${fullname}" ]; then - _echo "${fullname} already exists. Aborting." - exit 2 -fi -# copy standard files - -# create source - -# create destination directory +exit 0 -# Create -_echo "Creating ${fullname} ..." -mkdir -p "${fullname}" || exit 3 echo "root@${source}:/" > "${fullname}/source" cat << eof > "${fullname}/exclude" || exit 4