#!/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
