blob: d28da1e894173a459d99de0f57bc4f2ca3a8ff91 [file] [log] [blame]
#!/usr/bin/env bash
function print_usage_and_exit {
[ -z "$1" ] || echo "Error: $1"
echo "Usage: $0 <output_dir> <random_number>"
echo " - <output_dir>: directory where the generated csar file will be put into"
echo " - <random_number>: random number to choose which csar template to use"
exit 1
}
[ "$#" -ne 2 ] && print_usage_and_exit
OUTPUT=$1
SEED=$2
[ -d $OUTPUT ] || mkdir -p $OUTPUT
[ -d $OUTPUT ] || print_usage_and_exit "$OUTPUT is not a valid directory"
[[ $SEED =~ ^[0-9]+$ ]] || print_usage_and_exit "$SEED is not a integer"
ROOT_DIR=`dirname $(readlink -f $0)`
TMP_DIR=$ROOT_DIR/csar_tmp
declare -A TEMPLATES
#fill templates
for path in $ROOT_DIR/templates/*; do
[ -d "$path" ] || continue # not directory, skip
dirname="$(basename "${path}")"
TEMPLATES[$dirname]=${path}
done
KEYS=(${!TEMPLATES[@]})
key=${KEYS[$(( 10#$SEED % ${#KEYS[@]} ))]}
src=${TEMPLATES[$key]}
rm -rf $TMP_DIR
cp -r -f $src $TMP_DIR
find $TMP_DIR -type f | xargs sed -i "s/##RANDOM_RESOURCE_NAME##/s3p_${SEED}_${key}/g"
cd $TMP_DIR
echo $key
echo $src
zip -r "$ROOT_DIR/s3p_${SEED}_${key}.csar" *
rm -f "$OUTPUT/s3p_${SEED}_${key}.csar"
mv -f "$ROOT_DIR/s3p_${SEED}_${key}.csar" $OUTPUT/
cd $ROOT_DIR
rm -rf $TMP_DIR