Deploy 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=\`ps -fea | grep \"\$EXE\" | grep -v grep\`" >> run.sh
24   echo "[ \"\$EXE\" != \"\" -a \"\$STARTED\" != \"\" ] && { echo \"Already started!\"; echo \"\$STARTED\" ; exit ; }" >> 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 "&" >> run.sh
36   chmod a+x run.sh
37   rm args.txt
38 }
39
40 createDictionaryPaths () {
41
42   for i in stacks/*commands*xml
43   do
44     stacks/dependence.sh $i >/dev/null
45     stack=`basename $i`
46     if test "$stack" != "$BASE_PROT"
47     then
48       > .dictionary__${stack}
49       for j in `cat ${i}.dep`
50       do
51         echo -n "${j}," >> .dictionary__${stack}
52       done
53       echo "stacks/$BASE_PROT,stacks/${stack}" >> .dictionary__${stack}
54     fi
55   done
56
57   # Default:
58   ln -s .dictionary__commands_qosControl.xml .dictionary
59
60   # Remove deps:
61   rm -f stacks/*.dep
62 }
63
64 #############
65 # EXECUTION #
66 #############
67 echo
68 echo "---------------------------------------"
69 echo "Anna Diameter Launcher (ADL) deployment"
70 echo "---------------------------------------"
71 echo
72 echo "Input deployment path [$DPATH_dflt]:"
73 read DPATH
74 [[ "$DPATH" = "" ]] && DPATH=$DPATH_dflt
75 [[ -d $DPATH ]] && _exit "The path '$DPATH' already exists. Remove it before continue..."
76
77 echo "Basic checkings ..."
78 [[ ! -f $EXEC ]] && _exit "Anna Diameter Launcher (ADL) is not linked. Execute 'scons' for 'anna' suite."
79 [[ ! -d $SETUPS_DIR ]] && _exit "Diameter stacks not found ($SETUPS_DIR). Perhaps you executed this script out of its parent path."
80
81 echo
82 echo "Deploy (f)ull version or (l)ite version [l]:"
83 read deploy_type
84 [[ "$deploy_type" = "" ]] && deploy_type=l
85 [[ "$deploy_type" = "l" ]] && RESOURCES_DIR=resources_lite
86
87 echo "Copying ..."
88 mkdir -p $DPATH
89 mkdir -p $DPATH/stacks
90 mkdir -p $DPATH/DTDs
91 cp $EXEC $DPATH/ADL-launcher
92 cp -r $RESOURCES_DIR/* $DPATH
93 cp $SETUPS_DIR/*xml $DPATH/stacks
94 cp $SETUPS_DIR/*sh $DPATH/stacks
95 cp $SETUPS_DIR/readme.txt $DPATH/stacks
96 cp $MSGDTD $DPATH/DTDs
97 cp $DCTDTD $DPATH/DTDs
98
99 echo "Preparing ..."
100 cd $DPATH
101 [[ "$deploy_type" != "l" ]] && createRunScript
102 createDictionaryPaths
103 cd - >/dev/null
104
105 # Help:
106 echo
107 echo "Go to '$DPATH' and see README file"
108 echo
109 echo "Done!"
110 echo
111 echo
112
113