Improvement: show avp name if known (validation)
[anna.git] / example / diameter / launcher / resources / advanced / pre-start.sh
1 #!/bin/bash
2
3 # Remove logs:
4 rm *.log* *.csv 2>/dev/null
5
6 # Server sockets:
7 httpServer_dflt=`cat .httpServer 2>/dev/null`
8 diameterServer_dflt=`cat .diameterServer 2>/dev/null`
9 diameterServerSessions_dflt=`cat .diameterServerSessions 2>/dev/null`
10
11 # Client sockets:
12 entity_dflt=`cat .entity 2>/dev/null`
13 entityServerSessions_dflt=`cat .entityServerSessions 2>/dev/null`
14
15 # Stack:
16 dictionary_dflt=`cat .dictionary 2>/dev/null`
17
18 echo
19 echo
20 # If all have values:
21 if [ "$httpServer_dflt" != ""  -a "$diameterServer_dflt" != "" -a "$diameterServerSessions_dflt" != "" -a \
22   "$entity_dflt" != ""  -a "$entityServerSessions_dflt" != "" -a \
23   "$dictionary_dflt" != "" ]
24 then
25   echo "Do you wish to answer wizard commandline configuration ? (y/n) [n]:"
26   read wizard
27   [ "$wizard" = "" ] && wizard=n
28   [ "$wizard" = "n" ] && exit
29 fi
30
31 # DEFAULTS
32 [ "$httpServer_dflt" = "" ] && httpServer_dflt="localhost:9000"
33 [ "$diameterServer_dflt" = "" ] && diameterServer_dflt="localhost:3868"
34 [ "$diameterServerSessions_dflt" = "" ] && diameterServerSessions_dflt=1
35 [ "$entity_dflt" = "" ] && entity_dflt="localhost:4000,localhost:4001"
36 [ "$entityServerSessions_dflt" = "" ] && entityServerSessions_dflt=0
37 [ "$dictionary_dflt" = "" ] && dictionary_dflt=dictionary.xml
38
39
40 # Wizard
41 echo "HTTP Management interface address (using i.e. curl tool) as <ip|hostname>:<port> socket literal [$httpServer_dflt]:"
42 read httpServer
43 [ "$httpServer" = "" ] && httpServer=$httpServer_dflt
44
45 echo "Diameter dictionary: you could use '/opt/bin/anna/example_diameter_stackManagement' tool in order to build"
46 echo " autonomous dictionaries for any kind of application. The key is to concatenate xml contents (ietf, 3gpp,"
47 echo " vendor-specific, etc.). See 'example/diameter/stackManagement/self_ruling_setups.sh' for this."
48 echo
49 echo "This launcher can also join them providing a comma-separated list (dictionaries available on ./stack)."
50 echo "By default, a QoS Application setup is suggested. Input the desired configuration instead, or press ENTER:"
51 echo
52 echo " [$dictionary_dflt]:"
53 read dictionary
54 [ "$dictionary" = "" ] && dictionary=$dictionary_dflt
55
56 # As server:
57 echo "Diameter own server available connections (0: diameter server disabled) [$diameterServerSessions_dflt]:"
58 read diameterServerSessions
59 [ "$diameterServerSessions" = "" ] && diameterServerSessions=$diameterServerSessions_dflt
60
61 diameterServer=
62 if test "$diameterServerSessions" != "0"
63 then
64   echo "Diameter own server address as <ip|hostname>:<port> socket literal [$diameterServer_dflt]:"
65   read diameterServer
66 fi
67 [ "$diameterServer" = "" ] && diameterServer=$diameterServer_dflt
68
69 # As client:
70 echo "Diameter entity server sessions (0: diameter entity disabled) [$entityServerSessions_dflt]:"
71 read entityServerSessions
72 [ "$entityServerSessions" = "" ] && entityServerSessions=$entityServerSessions_dflt
73
74 entity=
75 if test "$entityServerSessions" != "0"
76 then
77   echo "Target diameter entity (pipe-separated <ip|hostname>:<port> socket literal list) ["$entity_dflt"]:"
78   read entity
79 fi
80 [ "$entity" = "" ] && entity="$entity_dflt"
81
82 # Configure:
83 echo $httpServer > .httpServer
84 echo $dictionary > .dictionary
85 echo $diameterServer > .diameterServer
86 echo $diameterServerSessions > .diameterServerSessions
87 echo $entity > .entity
88 echo $entityServerSessions > .entityServerSessions
89
90 echo
91 echo
92