Easy to use: not have to install software, only compile as debug.
[anna.git] / example / diameter / launcher / DEPLOY.sh
1 #!/bin/ksh
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=/opt/bin/anna/example_diameter_launcher
9 EXEC=./debug/example_diameter_launcher
10 DPATH_dflt=$HOME/ADL
11
12 _exit () {
13    echo
14    echo $1
15    echo
16    exit
17 }
18
19 createRunScript () {
20
21   echo "#!/bin/ksh" > 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
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
62 #############
63 # EXECUTION #
64 #############
65 echo
66 echo "---------------------------------------"
67 echo "Anna Diameter Launcher (ADL) deployment"
68 echo "---------------------------------------"
69 echo
70 echo "Input deployment path [$DPATH_dflt]:"
71 read DPATH
72 [[ "$DPATH" = "" ]] && DPATH=$DPATH_dflt
73 [[ -d $DPATH ]] && _exit "The path '$DPATH' already exists. Remove it before continue..."
74
75 echo "Basic checkings ..."
76 #[[ ! -f $EXEC ]] && _exit "Anna Diameter Launcher (ADL) is not installed in the system. Execute 'sudo scons install' for 'anna' suite."
77 [[ ! -f $EXEC ]] && _exit "Anna Diameter Launcher (ADL) is not linked. Execute 'scons' for 'anna' suite."
78 [[ ! -d $SETUPS_DIR ]] && _exit "Diameter stacks not found ($SETUPS_DIR). Perhaps you executed this script out of its parent path."
79
80 echo "Copying ..."
81 mkdir -p $DPATH
82 mkdir -p $DPATH/stacks
83 cp $EXEC $DPATH/ADL-launcher
84 cp resources/* $DPATH
85 cp $SETUPS_DIR/*xml $DPATH/stacks
86 cp $SETUPS_DIR/*sh $DPATH/stacks
87 cp $SETUPS_DIR/readme.txt $DPATH/stacks
88 cp $MSGDTD $DPATH
89 cp $DCTDTD $DPATH
90
91 echo "Preparing ..."
92 cd $DPATH
93 createRunScript
94 createDictionaryPaths
95 cd - >/dev/null
96
97 # Help:
98 echo
99 echo "Go to '$DPATH' and see README file"
100 echo
101 echo "Done!"
102 echo
103 echo
104
105