summaryrefslogtreecommitdiffstats
path: root/dgbuilder/tools/update_app_impl_yangs.sh
blob: 612f97d340d98b0939b95e7f5aa966e9879893b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
toolsDir=$PROJECT_HOME/tools
appRootDir=$1
yangFilesDirFullPath=$2
baseYangFile=$3

#echo ${appRootDir} 
#echo ${yangFilesDirFullPath} 
#echo ${baseYangFile} 
if [ "$#" -lt "3" ]
then
	echo "Usage: $0 appRootDir yangFilesDirectoryFullPath baseYangFile  example:$0 asdcApi /home/brocade/sdnc/asdcApi ASDC-API.yang"
	exit
fi
cd ${toolsDir}/tmpws
#cp ${toolsDir}/module-provider-impl.yang ${toolsDir}/tmpws

if [ ! -e "${toolsDir}/module-provider-impl.yang" ]
then
	echo "module-provider-impl.yang should exist in the current directory"
	exit
fi

#echo "appRootDir:$appRootDir"
#echo "yangFileFullPath:$yangFileFullPath"
#echo "yangFile:$yangFile"
cp ${yangFilesDirFullPath}/*.yang ${appRootDir}/model/src/main/yang
if [ "$?" != "0" ]
then
	echo "Could not copy the yang file. Exiting ..."
	exit
fi

moduleName=$(cat ${yangFilesDirFullPath}/${baseYangFile}|egrep "module .*{"|cut -d' ' -f2|cut -d'{' -f1)
sed -i.bak s/\$MODULE/$1/g ${toolsDir}/module-provider-impl.yang
cp ${toolsDir}/module-provider-impl.yang ${appRootDir}/provider/src/main/yang/${appRootDir}-provider-impl.yang 
cd $appRootDir
mvn clean install  >${toolsDir}/tmpws/logs/mvn_install.log 2>&1
if [ "$?" != "0" ]
then
	echo "mvn compile failed"
	exit 1	
fi
mkdir ${toolsDir}/tmpws/jars
cp ./model/target/${appRootDir}.model-1.0.0-SNAPSHOT.jar ${toolsDir}/tmpws/jars

mv ${toolsDir}/output_js/${moduleName}.js ${toolsDir}/output_js/${moduleName}.js_prev >/dev/null  2>&1 
${toolsDir}/getRpcsClassFromYangs.sh ${yangFilesDirFullPath}/${baseYangFile} ${toolsDir}/tmpws/${appRootDir}/model/target/${appRootDir}.model-1.0.0-SNAPSHOT.jar > ${toolsDir}/output_js/${moduleName}.js

mv  ${toolsDir}/output_js/${moduleName}_inputs.js ${toolsDir}/output_js/${moduleName}_inputs_prev.js >/dev/null 2>&1
node ${toolsDir}/dot_to_json.js ${toolsDir}/output_js/${moduleName}.js $moduleName >>${toolsDir}/output_js/${moduleName}_inputs.js
cp ${toolsDir}/output_js/${moduleName}_inputs.js $PROJECT_HOME/generatedJS