Improvements from anna fork
[anna.git] / example / diameter / launcher / deploy-aots.sh
diff --git a/example/diameter/launcher/deploy-aots.sh b/example/diameter/launcher/deploy-aots.sh
new file mode 100755 (executable)
index 0000000..8a7f8b7
--- /dev/null
@@ -0,0 +1,110 @@
+#!/bin/bash
+
+#############
+# VARIABLES #
+#############
+SCR_DIR=`readlink -f $0 | xargs dirname`
+PROJECT_ROOT=$(readlink -f $SCR_DIR/../../..)
+
+#############
+# FUNCTIONS #
+#############
+_exit () {
+  local msg="$1"
+  local rc=$2
+  [ -z "$rc" ] && rc=1
+
+  # Exit message:
+  [ -n "$msg" ] && echo -e "\n${msg}\n"
+
+  exit $rc
+}
+
+#############
+# EXECUTION #
+#############
+
+echo
+echo "------------------------------------------------------"
+echo "      AGENTS-ORIENTED TESTING SETUP installation      "
+echo "------------------------------------------------------"
+echo
+[ -d $PROJECT_ROOT/build/Release ] && VARIANT=Release
+[ -d $PROJECT_ROOT/build/Debug ] && VARIANT=Debug
+[ -z "$VARIANT" ] && _exit "Cannot locate neither 'Release' nor 'Debug' variant !"
+build_type_letter=$(echo $VARIANT | cut -c1 | tr '[:upper:]' '[:lower:]')
+
+version__dflt=v"`date +'%y'`.`date +'%m'`.`date +'%d'`$build_type_letter"
+INSTALL_AOTS__dflt=$HOME/3rdParty/anna-aots-builds/v"`date +'%y'`.`date +'%m'`.`date +'%d'`$build_type_letter"
+
+echo "Choose the target path for installation [$INSTALL_AOTS__dflt]:"
+echo " (enter a non-existent directory)"
+read INSTALL_AOTS
+[ -z "$INSTALL_AOTS" ] && INSTALL_AOTS=$INSTALL_AOTS__dflt
+INSTALL_AOTS=`readlink -m $INSTALL_AOTS`
+[ -d $INSTALL_AOTS ] && _exit "The target installation directory ($INSTALL_AOTS) already exists ! (if you want to reinstall, remove it first)"
+
+echo
+echo "Stage 1: Deploying resources ......................"
+echo
+mkdir -p $INSTALL_AOTS
+cp -r $SCR_DIR/deployments/aots/* $INSTALL_AOTS
+
+# VARIABLES ######################################
+# Sources:
+LDIR=${PROJECT_ROOT}/example/diameter/launcher
+BIN_DIR=${PROJECT_ROOT}/build/$VARIANT/bin
+LIB_DIR=${PROJECT_ROOT}/build/$VARIANT/lib
+
+# Targets:
+ADML=${INSTALL_AOTS}/agents/ADML
+DTDs=${ADML}/DTDs
+DYNLIBS=${ADML}/dynlibs
+##################################################
+
+echo
+echo "Variant: $VARIANT"
+echo
+
+# Empty directories:
+mkdir -p ${ADML}/counters
+mkdir -p ${ADML}/test-reports
+
+# Scripts:
+cp ${PROJECT_ROOT}/example/diameter/launcher/resources/scripts/operation_signal.sh ${ADML}/operation.sh
+
+# Templates:
+mkdir $DTDs
+cp ${PROJECT_ROOT}/include/anna/diameter/codec/message.dtd ${DTDs}
+cp ${PROJECT_ROOT}/include/anna/diameter/stack/dictionary.dtd ${DTDs}
+cp ${PROJECT_ROOT}/example/diameter/launcher/resources/services_examples/services.dtd ${DTDs}
+
+# Main Launcher and dynamic libraries:
+cp ${BIN_DIR}/anna_diameter_launcher ${ADML}/ADML
+cp -r $LIB_DIR/dynamic/launcher ${DYNLIBS}
+cp $LIB_DIR/libanna_testing_shared.so ${DYNLIBS}
+
+# Get stuff from leaf directories:
+cd $LIB_DIR/dynamic/launcher
+leafs=( $(find . -type d -links 2) )
+cd - >/dev/null
+
+cd ${PROJECT_ROOT}/dynamic/launcher
+for dir in ${leafs[@]}
+do
+    cp $dir/*.xml ${DYNLIBS}/$dir 2>/dev/null
+    cp $dir/dynamic.suffix ${DYNLIBS}/$dir 2>/dev/null
+    cp -r $dir/services ${DYNLIBS}/$dir 2>/dev/null
+done
+cd - >/dev/null
+
+# ADML dynamic libs selection script:
+cp ${LDIR}/resources/scripts/select_dynlib.sh ${DYNLIBS}/select.sh
+
+# Default dynamic library:
+cd ${DYNLIBS}
+ln -sf default/libanna_launcher_procedure_default_shared.so
+cd - >/dev/null
+
+_exit "Done!" 0
+