diff options
Diffstat (limited to 's3p/generate.sh')
-rwxr-xr-x | s3p/generate.sh | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/s3p/generate.sh b/s3p/generate.sh new file mode 100755 index 00000000..d28da1e8 --- /dev/null +++ b/s3p/generate.sh @@ -0,0 +1,46 @@ +#!/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 |