#!/usr/bin/env bash function print_usage_and_exit { [ -z "$1" ] || echo "Error: $1" echo "Usage: $0 " echo " - : directory where the generated csar file will be put into" echo " - : 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