diff options
| author | ytti <saku@ytti.fi> | 2016-11-04 20:30:18 +0200 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-11-04 20:30:18 +0200 | 
| commit | fab7e79787bd6d0d06483da35656bd6045687e06 (patch) | |
| tree | d2b74904b43d39edb305ac4fc38550b1270ba372 /lib/oxidized/model | |
| parent | e86cc00b902fb437e59a4c3e6b3fc89d3c48fbde (diff) | |
| parent | 60ee472e2cb62b6bae6ab118ec102108b81148b7 (diff) | |
Merge pull request #608 from rfdrake/trango
Added support for Trango/Trangolink-45
Diffstat (limited to 'lib/oxidized/model')
| -rw-r--r-- | lib/oxidized/model/trango.rb | 62 | 
1 files changed, 62 insertions, 0 deletions
| diff --git a/lib/oxidized/model/trango.rb b/lib/oxidized/model/trango.rb new file mode 100644 index 0000000..b2aa1e7 --- /dev/null +++ b/lib/oxidized/model/trango.rb @@ -0,0 +1,62 @@ +class Trango < Oxidized::Model +  # take a Trangolink sysinfo output and turn it into a configuration file +   +  prompt /^#>\s?/ +  comment  '# ' + +  cmd 'sysinfo' do |cfg| +    out = [] +    comments = [] +    cfg.each_line do |line| +      if line.match /\[Opmode\] (off|on) \[Default Opmode\] (off|on)/ +        out << "opmode " + Regexp.last_match[1] +        out << "defaultopmode " + Regexp.last_match[2] +      end +      if line.match /\[Tx Power\] ([\-\d]+) dBm/ +        out << "power " + Regexp.last_match[1] +      end +      if line.match /\[Active Channel\] (\d+) (v|h)/ +        out << "freq " + Regexp.last_match[1] + ' ' + Regexp.last_match[2] +      end +      if line.match /\[Peer ID\] ([A-F0-9]+)/ +        out << "peerid " + Regexp.last_match[1] +      end +      if line.match /\[Unit Type\] (\S+)/ +        out << "utype " + Regexp.last_match[1] +      end +      if line.match /\[(Hardware Version|Firmware Version|Model|S\/N)\] (\S+)/ +        comments << '# ' + Regexp.last_match[1] + ': ' + Regexp.last_match[2] +      end +      if line.match /\[Remarks\] (\S+)/ +        out << "remarks " + Regexp.last_match[1] +      end +      if line.match /\[RSSI LED\] (on|off)/ +        out << "rssiled " + Regexp.last_match[1] +      end +      if line.match /\[Speed\] (\d+) Mbps/ +        speed = Regexp.last_match[1] +      end +      if line.match /\[Tx MIR\] (\d+) Kbps/ +        out << "mir ".concat(Regexp.last_match[1]) +      end +      if line.match /\[Auto Rate Shift\] (on|off)/ +        out << "autorateshift ".concat(Regexp.last_match[1]) +        if Regexp.last_match[1].eql? 'off' +          out << "speed $speed" +        end +      end +      if line.match /\[IP\] (\S+) \[Subnet Mask\] (\S+) \[Gateway\] (\S+)/ +        out << "ipconfig " + Regexp.last_match[1] + ' ' + +                              Regexp.last_match[2] + ' ' + +                              Regexp.last_match[3] +      end +    end  +    comments.push(*out).join "\n" +  end  + +  cfg :telnet do +    password /Password:/ +    pre_logout 'exit' +  end +  +end | 
