Make easy ADL configuration (lite version)
[anna.git] / example / diameter / launcher / DEPLOY.sh
1 #!/bin/bash
2
3 # Functions & variables
4 SETUPS_DIR=../../../source/diameter/stack/setups
5 MSGDTD=../../../include/anna/diameter/codec/message.dtd
6 DCTDTD=../../../include/anna/diameter/stack/dictionary.dtd
7 BASE_PROT=commands_baseProtocol.xml
8 EXEC=./debug/example_diameter_launcher
9 DPATH_dflt=$HOME/ADL
10 RESOURCES_DIR=resources
11
12 _exit () {
13    echo
14    echo $1
15    echo
16    exit
17 }
18
19 createRunScript () {
20
21   echo "#!/bin/bash" > run.sh
22   echo "EXE=\`cat .exe 2>/dev/null\`" >> run.sh
23   echo "STARTED=\`pgrep \$EXE2>/dev/null\`" >> run.sh
24   echo "[ \$? -eq 0 ] && { echo \"Already started!\"; echo \"\$STARTED\" ; exit 1 ; }" >> run.sh
25   echo "./pre-start.sh" >> run.sh
26   echo "> launcher.traces" >> run.sh
27   echo "EXE=\"./ADL-launcher\"" >> run.sh
28   echo "echo \$EXE > .exe"  >> run.sh
29   echo >> run.sh
30   echo -n "\$EXE " >> run.sh
31   for i in `cat args.txt | grep -v "^#"`
32   do
33     echo -n "$i " >> run.sh
34   done
35   echo -n "-cntDir counters " >> run.sh
36   echo "&" >> run.sh
37   chmod a+x run.sh
38   rm args.txt
39 }
40
41 createDictionaryPaths () {
42
43   for i in stacks/*commands*xml
44   do
45     stacks/dependence.sh $i >/dev/null
46     stack=`basename $i`
47     if test "$stack" != "$BASE_PROT"
48     then
49       > .dictionary__${stack}
50       for j in `cat ${i}.dep`
51       do
52         echo -n "${j}," >> .dictionary__${stack}
53       done
54       echo "stacks/$BASE_PROT,stacks/${stack}" >> .dictionary__${stack}
55     fi
56   done
57
58   # Default:
59   ln -s .dictionary__commands_qosControl.xml .dictionary
60
61   # Remove deps:
62   rm -f stacks/*.dep
63 }
64
65 #############
66 # EXECUTION #
67 #############
68 echo
69 echo "---------------------------------------"
70 echo "Anna Diameter Launcher (ADL) deployment"
71 echo "---------------------------------------"
72 echo
73 echo "Input deployment path [$DPATH_dflt]:"
74 read DPATH
75 [ "$DPATH" = "" ] && DPATH=$DPATH_dflt
76 [ -d $DPATH ] && _exit "The path '$DPATH' already exists. Remove it before continue..."
77
78 echo "Basic checkings ..."
79 [ ! -f $EXEC ] && _exit "Anna Diameter Launcher (ADL) is not linked. Execute 'scons' for 'anna' suite."
80 [ ! -d $SETUPS_DIR ] && _exit "Diameter stacks not found ($SETUPS_DIR). Perhaps you executed this script out of its parent path."
81
82 echo
83 echo "Deploy (f)ull version or (l)ite version [l]:"
84 read deploy_type
85 [ "$deploy_type" = "" ] && deploy_type=l
86 [ "$deploy_type" = "l" ] && RESOURCES_DIR=resources_lite
87
88 echo "Copying ..."
89 mkdir -p $DPATH
90 mkdir -p $DPATH/stacks
91 mkdir -p $DPATH/DTDs
92 mkdir -p $DPATH/counters
93 cp $EXEC $DPATH/ADL-launcher
94 cp -r $RESOURCES_DIR/* $DPATH
95 cp $SETUPS_DIR/*xml $DPATH/stacks
96 cp $SETUPS_DIR/*sh $DPATH/stacks
97 cp $SETUPS_DIR/readme.txt $DPATH/stacks
98 cp $MSGDTD $DPATH/DTDs
99 cp $DCTDTD $DPATH/DTDs
100
101 echo "Preparing ..."
102 cd $DPATH
103 [ "$deploy_type" != "l" ] && createRunScript
104 createDictionaryPaths
105 cd - >/dev/null
106
107 # Help:
108 echo
109 echo "Go to '$DPATH' and see README file"
110 echo
111 echo "Done!"
112 echo
113 echo
114
115