Improvements & fixes
[anna.git] / example / diameter / launcher / deployments / advanced / pre-start.sh
diff --git a/example/diameter/launcher/deployments/advanced/pre-start.sh b/example/diameter/launcher/deployments/advanced/pre-start.sh
new file mode 100755 (executable)
index 0000000..49a83ff
--- /dev/null
@@ -0,0 +1,92 @@
+#!/bin/bash
+
+# Remove logs:
+rm *.log* *.csv 2>/dev/null
+
+# Server sockets:
+httpServer_dflt=`cat .httpServer 2>/dev/null`
+diameterServer_dflt=`cat .diameterServer 2>/dev/null`
+diameterServerSessions_dflt=`cat .diameterServerSessions 2>/dev/null`
+
+# Client sockets:
+entity_dflt=`cat .entity 2>/dev/null`
+entityServerSessions_dflt=`cat .entityServerSessions 2>/dev/null`
+
+# Stack:
+dictionary_dflt=`cat .dictionary 2>/dev/null`
+
+echo
+echo
+# If all have values:
+if [ "$httpServer_dflt" != ""  -a "$diameterServer_dflt" != "" -a "$diameterServerSessions_dflt" != "" -a \
+  "$entity_dflt" != ""  -a "$entityServerSessions_dflt" != "" -a \
+  "$dictionary_dflt" != "" ]
+then
+  echo "Do you wish to answer wizard commandline configuration ? (y/n) [n]:"
+  read wizard
+  [ "$wizard" = "" ] && wizard=n
+  [ "$wizard" = "n" ] && exit
+fi
+
+# DEFAULTS
+[ "$httpServer_dflt" = "" ] && httpServer_dflt="localhost:9000"
+[ "$diameterServer_dflt" = "" ] && diameterServer_dflt="localhost:3868"
+[ "$diameterServerSessions_dflt" = "" ] && diameterServerSessions_dflt=1
+[ "$entity_dflt" = "" ] && entity_dflt="localhost:4000,localhost:4001"
+[ "$entityServerSessions_dflt" = "" ] && entityServerSessions_dflt=0
+[ "$dictionary_dflt" = "" ] && dictionary_dflt=dictionary.xml
+
+
+# Wizard
+echo "HTTP Management interface address (using i.e. curl tool) as <ip|hostname>:<port> socket literal [$httpServer_dflt]:"
+read httpServer
+[ "$httpServer" = "" ] && httpServer=$httpServer_dflt
+
+echo "Diameter dictionary: you could use '/opt/bin/anna/example_diameter_stackManagement' tool in order to build"
+echo " autonomous dictionaries for any kind of application. The key is to concatenate xml contents (ietf, 3gpp,"
+echo " vendor-specific, etc.). See 'example/diameter/stackManagement/self_ruling_setups.sh' for this."
+echo
+echo "This launcher can also join them providing a comma-separated list (dictionaries available on ./stack)."
+echo "By default, a QoS Application setup is suggested. Input the desired configuration instead, or press ENTER:"
+echo
+echo " [$dictionary_dflt]:"
+read dictionary
+[ "$dictionary" = "" ] && dictionary=$dictionary_dflt
+
+# As server:
+echo "Diameter own server available connections (0: diameter server disabled) [$diameterServerSessions_dflt]:"
+read diameterServerSessions
+[ "$diameterServerSessions" = "" ] && diameterServerSessions=$diameterServerSessions_dflt
+
+diameterServer=
+if test "$diameterServerSessions" != "0"
+then
+  echo "Diameter own server address as <ip|hostname>:<port> socket literal [$diameterServer_dflt]:"
+  read diameterServer
+fi
+[ "$diameterServer" = "" ] && diameterServer=$diameterServer_dflt
+
+# As client:
+echo "Diameter entity server sessions (0: diameter entity disabled) [$entityServerSessions_dflt]:"
+read entityServerSessions
+[ "$entityServerSessions" = "" ] && entityServerSessions=$entityServerSessions_dflt
+
+entity=
+if test "$entityServerSessions" != "0"
+then
+  echo "Target diameter entity (pipe-separated <ip|hostname>:<port> socket literal list) ["$entity_dflt"]:"
+  read entity
+fi
+[ "$entity" = "" ] && entity="$entity_dflt"
+
+# Configure:
+echo $httpServer > .httpServer
+echo $dictionary > .dictionary
+echo $diameterServer > .diameterServer
+echo $diameterServerSessions > .diameterServerSessions
+echo $entity > .entity
+echo $entityServerSessions > .entityServerSessions
+
+echo
+echo
+