summaryrefslogtreecommitdiffstats
path: root/s3p/generate.sh
diff options
context:
space:
mode:
Diffstat (limited to 's3p/generate.sh')
-rwxr-xr-xs3p/generate.sh46
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