diff --git a/scripts/mib_to_yang.sh b/scripts/mib_to_yang.sh new file mode 100755 index 00000000..c29fb3a2 --- /dev/null +++ b/scripts/mib_to_yang.sh @@ -0,0 +1,34 @@ +#/usr/bin/env bash + +# Traverses a directory ($MIBDIR) and tries to convert each file from SMI format +# to YANG and preserve directory structure etc. +# This script can be used like this: ./mib_to_yang /usr/share/snmp/mibs yang/ + +MIBDIR=$1 +YANGDIR=$2 + +function parse_mibs(){ + indir=$1 + outdir=$2 + + for i in $indir/*; do + outfile="$outdir`basename $i | cut -d"." -f1`.yang" + SMIPATH=$MIBDIR smidump -f yang -k $i > $outfile + done +} + +if [ $# -ne 2 ]; then + echo "Usage: $0 " + exit +fi + +for i in `find $MIBDIR -type d -or -type l`; do + if [ `basename $i` == `basename $MIBDIR` ]; then + outdir=$YANGDIR + else + outdir="$YANGDIR`basename $i`/" + fi + + mkdir -p $outdir + parse_mibs $i $outdir +done