SNMP MIB to YANG conversion. Script to traverse a MIB directory and convert the MIBs to YANG files using smidump.
This commit is contained in:
parent
d82df5b707
commit
1c55ed05f2
1 changed files with 34 additions and 0 deletions
34
scripts/mib_to_yang.sh
Executable file
34
scripts/mib_to_yang.sh
Executable file
|
|
@ -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 <MIB directory, usually /usr/share/snmp/mibs> <out directory, for example yang/>"
|
||||||
|
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
|
||||||
Loading…
Add table
Add a link
Reference in a new issue