Mark Michelson 9f539b
#!/bin/bash
Mark Michelson 9f539b
# Copyright (C) 2017, Red Hat, Inc.
Mark Michelson 9f539b
#
Mark Michelson 9f539b
# set_config.sh will copy a configuration from $1 to $2, in the process
Mark Michelson 9f539b
# checking that the sha header for $1 matches the header in $2
Mark Michelson 9f539b
Mark Michelson 9f539b
source configlib.sh
Mark Michelson 9f539b
Mark Michelson 9f539b
if (( $# < 2 )); then
Mark Michelson 9f539b
    echo "$0: source dest [comment-marker]"
Mark Michelson 9f539b
    exit 1
Mark Michelson 9f539b
fi
Mark Michelson 9f539b
Mark Michelson 9f539b
if [ ! -f "$1" ]; then
Mark Michelson 9f539b
    echo "Source file $1 must exist."
Mark Michelson 9f539b
    exit 1
Mark Michelson 9f539b
fi
Mark Michelson 9f539b
src_file=$1
Mark Michelson 9f539b
shift
Mark Michelson 9f539b
Mark Michelson 9f539b
if [ ! -f "$1" ]; then
Mark Michelson 9f539b
    echo "Dest file $1 must exist."
Mark Michelson 9f539b
    exit 1
Mark Michelson 9f539b
fi
Mark Michelson 9f539b
dst_file=$1
Mark Michelson 9f539b
shift
Mark Michelson 9f539b
Mark Michelson 9f539b
comment_sep=${1:-#}
Mark Michelson 9f539b
Mark Michelson 9f539b
export LANG=en_US.utf8
Mark Michelson 9f539b
Mark Michelson 9f539b
DEST_FILE_SHA=""
Mark Michelson 9f539b
SRC_FILE_SHA=""
Mark Michelson 9f539b
Mark Michelson 9f539b
calc_sha DEST_FILE_SHA "$dst_file" "$comment_sep" || echo "Failed to calc sha"
Mark Michelson 9f539b
retr_sha SRC_FILE_SHA "$src_file" "$comment_sep" || echo "Failed to retrieve sha"
Mark Michelson 9f539b
Mark Michelson 9f539b
if [ "$DEST_FILE_SHA" != "$SRC_FILE_SHA" ]; then
Mark Michelson 9f539b
    echo "ERROR: The requisite starting sha from $dst_file does not match the"
Mark Michelson 9f539b
    echo "       specified sha in $src_file."
Mark Michelson 9f539b
    echo "[ $DEST_FILE_SHA ] vs [ $SRC_FILE_SHA ]"
Mark Michelson 9f539b
    exit 1
Mark Michelson 9f539b
fi
Mark Michelson 9f539b
Mark Michelson 9f539b
mv "$dst_file" "$dst_file".OLD
Mark Michelson 9f539b
cp "$src_file" "$dst_file"
Mark Michelson 9f539b
echo "copied 1 config file."
Mark Michelson 9f539b
exit 0