| toolsDir=$PROJECT_HOME/tools |
| . ${toolsDir}/setClasspath |
| if [ "$#" != "2" ] |
| then |
| echo "Usage $0 yang_file generated_jar_file" |
| echo "example $0 /home/users/sdnc/src/appName/model/src/main/yang/app.yang /home/users/sdnc/src/appName/model/target/appName.model-2.0.0.jar" |
| exit |
| fi |
| yangFile="$1" |
| jarFile="$2" |
| module=$(cat $yangFile|egrep "module .*{"|awk '{print $2}'|sed -e 's/{//g') |
| #echo " \"$module\" : [" |
| rpcs=$(grep rpc $yangFile|grep -v leaf|sed -e 's/^\s\+rpc//g'|awk '{print $1}') |
| for i in `find ${toolsDir}/yangToolsJars -name "*.jar" -print` |
| do |
| #echo $i |
| export CLASSPATH=$CLASSPATH:$i |
| done |
| export CLASSPATH=$2:$CLASSPATH:.:${toolsDir}/slf4j-api-1.7.2.jar:${toolsDir}/guava-14.0.1.jar:${toolsDir}/printYangToProp.jar |
| allProps="" |
| for rpc in $rpcs |
| do |
| rpcVal=$(echo $rpc|sed -e "s/\b\(.\)/\u\1/g"|sed s/\-//g) |
| #echo $rpcVal |
| className=$(jar -tvf ${jarFile}|grep "org/opendaylight/yang/gen/"|grep -w "${rpcVal}Input.class"|grep -v grep|awk '{print $NF}'|sed -e 's/\//./g'|sed -e 's/.class$//g') |
| #echo $className |
| inputProps="" |
| if [ "$className" != "" ] |
| then |
| #java -cp $CLASSPATH PrintYangToProp $className 2>/dev/null|grep '*' |cut -d'*' -f2|sed -e "s/^[ \t]*//g"|sed -e "s/^/\t\t\"/g"|sed -e "s/$/\",/g" |
| inputProps=$(java -cp $CLASSPATH PrintYangToProp $className 2>${toolsDir}/tmpws/logs/err.log) |
| fi |
| className=$(jar -tvf ${jarFile}|grep "org/opendaylight/yang/gen/"|grep -w "${rpcVal}Output"|grep -v grep|awk '{print $NF}'|sed -e 's/\//./g'|sed -e 's/.class$//g') |
| #echo $inputProps |
| #echo $className |
| outputProps="" |
| if [ "$className" != "" ] |
| then |
| #java -cp $CLASSPATH PrintYangToProp $className 2>/dev/null|grep '*' |cut -d'*' -f2|sed -e "s/^[ \t]*//g"|sed -e "s/^/\t\t\"/g"|sed -e "s/$/\",/g" |
| outputProps=$(java -cp $CLASSPATH PrintYangToProp $className 2>${toolsDir}/tmpws/logs/err.log) |
| fi |
| if [ -z "$allProps" ] |
| then |
| allProps=$(echo ${inputProps}${outputProps}|sed -e s/,$//g) |
| else |
| allProps=$(echo ${allProps},${inputProps}${outputProps}|sed -e s/,$//g) |
| fi |
| done |
| #echo $allProps |
| #OIFS=$IFS |
| #IFS=',' |
| #arr2=$allProps |
| #for x in $arr2 |
| #do |
| # echo "$x" |
| #done |
| #IFS=$OIFS |
| #echo " ]" |
| echo "module.exports = {" |
| echo "\"moduleName\" : \"${module}\"," |
| echo "'${module}_VALUES' : " |
| echo "[ $allProps ]"|python -m json.tool |
| echo "," |
| echo "'${module}_RPCS' : [" |
| |
| cnt=0 |
| #numOfRpcs=${#rpcs[@]} |
| numOfRpcs=0; |
| for rpc in $rpcs |
| do |
| numOfRpcs=$((numOfRpcs+1)) |
| done |
| |
| for rpc in $rpcs |
| do |
| cnt=$((cnt+1)) |
| if [ $cnt -eq $numOfRpcs ] |
| then |
| echo " \"$rpc\"" |
| else |
| echo " \"$rpc\"," |
| fi |
| done |
| echo " ]" |
| echo "}" |