blob: 70162c6f666317ecd4ffd67c71ce9cbfe639795e [file] [log] [blame]
if [ -z "$PROJECT_HOME" ]
then
export PROJECT_HOME=$(pwd)/..
fi
toolsDir=$PROJECT_HOME/tools
rm -rf ${toolsDir}/tmpws
mkdir ${toolsDir}/tmpws
mkdir ${toolsDir}/tmpws/logs
mkdir ${toolsDir}/tmpws/jars
mkdir ${toolsDir}/tmpws/tmp
if [ "$#" != "1" ]
then
echo "Command line:$0 $*" >${toolsDir}/tmpws/logs/err.log
echo "Usage: $0 yangFile" >>${toolsDir}/tmpws/logs/err.log
exit
fi
isZipFile="N"
echo "$1" | grep "\.zip$" >/dev/null 2>&1
if [ "$?" -eq "0" ]
then
isZipFile="Y"
fi
if [ "$isZipFile" = "Y" ]
then
#zip file of yangs provided
zipFile=$(basename $1)
unzip -o -d $PROJECT_HOME/tools/tmpws/tmp $1 >/dev/null 2>&1
rm $1 >/dev/null 2>&1
cd $PROJECT_HOME/tools/tmpws/tmp
fName="${zipFile}"
extension="${fName##*.}"
moduleName="${fName%.*}"
#echo "ModuleName is :$moduleName"
rm -rf $PROJECT_HOME/yangFiles/$moduleName
mkdir $PROJECT_HOME/yangFiles/$moduleName
mv *.yang $PROJECT_HOME/yangFiles/$moduleName
cd $PROJECT_HOME/tools
yangFilesFullPath=${PROJECT_HOME}/yangFiles/$moduleName
cd ${toolsDir}/tmpws
mkdir -p yangApp/model/src/main/yang
mkdir -p yangApp/model/src/main/yang-gen-sal
cp -r ${yangFilesFullPath}/* yangApp/model/src/main/yang
cp ${toolsDir}/pom.xml_base yangApp/model/pom.xml
cd ${toolsDir}/tmpws/yangApp/model
#Maven Compile
mvn clean install >${toolsDir}/tmpws/logs/mvn_install.log 2>${toolsDir}/tmpws/logs/err.log
yangApp_model_jar="yangApp-model-1.0.0-SNAPSHOT.jar"
#Copy the built jar to jars directory
cp ${toolsDir}/tmpws/yangApp/model/target/${yangApp_model_jar} ${toolsDir}/tmpws/jars
. ${toolsDir}/setClasspath
mv ${toolsDir}/output_js/${moduleName}_inputs.js ${toolsDir}/output_js/${moduleName}_inputs_prev.js >/dev/null 2>&1
${toolsDir}/getRpcsClassFromYang.sh ${yangFilesFullPath}/${moduleName}.yang ${toolsDir}/tmpws/yangApp/model/target/${yangApp_model_jar} > ${toolsDir}/output_js/${moduleName}.js
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
else
#Single yang provided
yangFileFullPath=$1
cd ${toolsDir}/tmpws
mkdir -p yangApp/model/src/main/yang
mkdir -p yangApp/model/src/main/yang-gen-sal
cp ${yangFileFullPath} yangApp/model/src/main/yang
cp ${toolsDir}/pom.xml_base yangApp/model/pom.xml
cd ${toolsDir}/tmpws/yangApp/model
#Maven Compile
mvn clean install >${toolsDir}/tmpws/logs/mvn_install.log 2>${toolsDir}/tmpws/logs/err.log
yangApp_model_jar="yangApp-model-1.0.0-SNAPSHOT.jar"
#Copy the built jar to jars directory
cp ${toolsDir}/tmpws/yangApp/model/target/${yangApp_model_jar} ${toolsDir}/tmpws/jars
. ${toolsDir}/setClasspath
moduleName=$(cat $yangFileFullPath|egrep "module .*{"|cut -d' ' -f2|cut -d'{' -f1)
mv ${toolsDir}/output_js/${moduleName}_inputs.js ${toolsDir}/output_js/${moduleName}_inputs_prev.js >/dev/null 2>&1
${toolsDir}/getRpcsClassFromYang.sh ${yangFileFullPath} ${toolsDir}/tmpws/yangApp/model/target/${yangApp_model_jar} > ${toolsDir}/output_js/${moduleName}.js
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
fi
echo "Done..."