File: build-pysnmp-mib

package info (click to toggle)
python-pysnmp4 4.1.6a-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 1,016 kB
  • ctags: 1,826
  • sloc: python: 9,809; sh: 60; makefile: 11
file content (57 lines) | stat: -rw-r--r-- 1,562 bytes parent folder | download | duplicates (3)
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
52
53
54
55
56
57
#!/bin/bash
#
# Convert MIB text into PySNMP-compilant MIB/managed objects module.
# See http://pysnmp.sf.net for more information.
#

libsmi2pysnmp=libsmi2pysnmp  # part of pysnmp distro
smidump=smidump  # part of libsmi distro

while getopts o: o
  do case "$o" in
  o) exec 5>"$OPTARG" 1>&5 || { echo >&2 "Redirection failed"; exit 1; } ;;
  [?]) echo >&2 "\
Convert MIB text file into PySNMP-compliant module, see http://pysnmp.sf.net.
Usage: $0 [-o pysnmp-mib-file ] [ mib-text-file ]\
"
  exit 1;;
  esac
done

shift $((OPTIND-1))

[ $# -gt 1 ] && { echo >&2 "Extra arguments given"; exit 1; }

[ -z $1 ] && { mibFile="-"; } || { 
    mibFile=$1;
    export SMIPATH=":$SMIPATH:$(echo $mibFile | sed -e 's/\(.*\)\/.*/\1/g')";
}        

egrep -q 'FROM *RFC' $mibFile 2> /dev/null && { oldMib='yes'; } || {
    [ $? -eq 1 ] && { oldMib='no'; } || {
        echo >&2 "cant open $mibFile";
        exit 1;
    }
}

[ $oldMib = 'yes' ] && { # pysnmp SMI is SMIv2
    tmpFile=/tmp/buildmibs.$$
    $smidump -f smiv2 $mibFile > $tmpFile 2> /dev/null || {
        [ -f $tmpFile ] && rm -f $tmpFile;
        echo >&2 "$smidump -f smiv2 $mibFile fails";
        exit ;
    }
    $smidump -f python $tmpFile 2> /dev/null | $libsmi2pysnmp || {
        [ -f $tmpFile ] && rm -f $tmpFile;
        echo >&2 "$smidump -f python $mibFile | $libsmi2pysnmp fails";
        exit
    }
    rm -f $tmpFile
} || {
    $smidump -f python $mibFile 2> /dev/null | $libsmi2pysnmp || {
        echo >&2 "$smidump -f python $mibFile | $libsmi2pysnmp fails";
        exit
    }
}

exit