reorganization
[anna.git] / example / diameter / launcher / DEPLOY.sh
1 #!/bin/ksh
2
3 # Functions & variables
4 SETUPS_DIR=../../../source/diameter/stack/setups
5 MSGDTD_DIR=../../../source/diameter/codec/message.dtd
6 BASE_PROT=commands_baseProtocol.xml
7 EXEC=/opt/bin/anna/example_diameter_launcher
8 DPATH_dflt=$HOME/ADL
9
10 _exit () {
11    echo
12    echo $1
13    echo
14    exit
15 }
16
17 createRunScript () {
18
19 echo "#!/bin/ksh" > run.sh
20 echo "EXE=\`cat .exe 2>/dev/null\`" >> run.sh
21 echo "STARTED=\`ps -fea | grep \"\$EXE\" | grep -v grep\`" >> run.sh
22 echo "[ \"\$EXE\" != \"\" -a \"\$STARTED\" != \"\" ] && { echo \"Already started!\"; echo \"\$STARTED\" ; exit ; }" >> run.sh
23 echo "pre-start.sh" >> run.sh
24 echo "> launcher.traces" >> run.sh
25 echo "EXE=\"ndl_\`date '+%Y%m%d%H%M%S'\`\"" >> run.sh
26 echo "echo \$EXE > .exe"  >> run.sh
27 #echo "rm \$EXE 2>/dev/null" >> run.sh
28 echo "echo ; echo \"Executable paths:\" ; echo" >> run.sh
29 echo "for i in \`ls execs/.*/*\` ; do echo \$i ; done" >> run.sh
30 echo "echo ; echo \"Input the executable path:\" ; read path ; while test \"\$path\" = \"\" ; do read path ; done" >> run.sh
31 echo "ln -s \$path \$EXE" >> run.sh
32 echo >> run.sh
33 echo -n "\$EXE " >> run.sh
34 for i in `cat args.txt | grep -v "^#"`
35 do
36    echo -n "$i " >> run.sh
37 done
38 echo "&" >> run.sh
39 chmod a+x run.sh
40 rm args.txt
41 }
42
43 createDictionaryPaths () {
44
45
46 for i in stacks/*commands*xml
47 do
48    stacks/dependence.sh $i >/dev/null
49    stack=`basename $i`
50    if test "$stack" != "$BASE_PROT"
51    then
52       > .dictionary__${stack}
53       for j in `cat ${i}.dep`
54       do
55          echo "${j},\c" >> .dictionary__${stack}
56       done
57       echo "stacks/$BASE_PROT,stacks/${stack}" >> .dictionary__${stack}
58    fi
59 done
60
61 # Default:
62 ln -s .dictionary__commands_qosControl.xml .dictionary
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_dftl]:"
74 read DPATH
75 [[ "$DPATH" = "" ]] && DPATH=$DPATH_dflt
76 mkdir -p $DPATH
77 mkdir $DPATH/stacks
78
79 echo "Basic checkings ..."
80 [[ ! -f $EXEC ]] && salir "Anna Diameter Launcher (ADL) is not installed in the system. Execute 'sudo scons install' for 'anna' suite."
81 [[ ! -d $SETUPS_DIR ]] && salir "Diameter stacks not found ($SETUPS_DIR). Perhaps you executed '$0' out of its parent path."
82
83 echo "Copying ..."
84 cp $EXEC $DPATH/launcher
85 cp resources/* $DPATH
86 cp $SETUPS_DIR/*xml $DPATH/stacks
87 cp $SETUPS_DIR/*sh $DPATH/stacks
88 cp $MSGDTD_DIR $DPATH
89
90 echo "Preparing ..."
91 cd $DPATH
92 createRunScript
93 createDictionaryPaths
94 cd - >/dev/null
95
96 # Help:
97 echo "Stacks available at '.dictionary__<stack description>', create a symbolic link from '.dictionary'." >> tmp/README
98 echo "Template for xml messages: message.dtd (informative, not actually required by process)" >> tmp/README
99 echo "Start with 'run.sh'" >> tmp/README
100
101 mv tmp ADL-installer
102 tar cvfz ADL-installer.tar.gz ADL-installer
103 rm -rf ADL-installer
104
105 echo
106 echo "Created ADL-installer.tar.gz !"
107 echo
108
109