summaryrefslogtreecommitdiffstats
path: root/bin/rancid-fe.in
diff options
context:
space:
mode:
Diffstat (limited to 'bin/rancid-fe.in')
-rw-r--r--bin/rancid-fe.in56
1 files changed, 31 insertions, 25 deletions
diff --git a/bin/rancid-fe.in b/bin/rancid-fe.in
index 3976253..604040d 100644
--- a/bin/rancid-fe.in
+++ b/bin/rancid-fe.in
@@ -1,8 +1,8 @@
#! @PERLV_PATH@
##
-## $Id: rancid-fe.in,v 1.37 2005/06/14 20:20:44 heas Exp $
+## $Id: rancid-fe.in,v 1.42 2006/08/12 00:44:53 heas Exp $
##
-## Copyright (C) 1997-2004 by Terrapin Communications, Inc.
+## Copyright (C) 1997-2006 by Terrapin Communications, Inc.
## All rights reserved.
##
## This software may be freely copied, modified and redistributed
@@ -27,32 +27,38 @@
require 5;
($router, $vendor) = split('\:', $ARGV[0]);
+$vendor =~ tr/[A-Z]/[a-z]/;
- if ($vendor =~ /^alteon$/i) { exec('arancid', $router); }
-elsif ($vendor =~ /^baynet$/i) { exec('brancid', $router); }
-elsif ($vendor =~ /^cat5$/i) { exec('cat5rancid', $router); }
-elsif ($vendor =~ /^cisco$/i) { exec('rancid', $router); }
-elsif ($vendor =~ /^css$/i) { exec('cssrancid', $router); }
-elsif ($vendor =~ /^enterasys$/i) { exec('rivrancid', $router); }
-elsif ($vendor =~ /^erx$/i) { exec('jerancid', $router); }
-elsif ($vendor =~ /^extreme$/i) { exec('xrancid', $router); }
-elsif ($vendor =~ /^ezt3$/i) { exec('erancid', $router); }
-elsif ($vendor =~ /^force10$/i) { exec('f10rancid', $router); }
-elsif ($vendor =~ /^foundry$/i) { exec('francid', $router); }
-elsif ($vendor =~ /^hitachi$/i) { exec('htrancid', $router); }
-elsif ($vendor =~ /^hp$/i) { exec('hrancid', $router); }
-elsif ($vendor =~ /^juniper$/i) { exec('jrancid', $router); }
-elsif ($vendor =~ /^mrtd$/i) { exec('mrancid', $router); }
-elsif ($vendor =~ /^netscaler$/i) { exec('nsrancid', $router); }
-elsif ($vendor =~ /^netscreen$/i) { exec('nrancid', $router); }
-elsif ($vendor =~ /^procket$/i) { exec('prancid', $router); }
-elsif ($vendor =~ /^redback$/i) { exec('rrancid', $router); }
-elsif ($vendor =~ /^riverstone$/i) { exec('rivrancid', $router); }
-elsif ($vendor =~ /^tnt$/i) { exec('tntrancid', $router); }
-elsif ($vendor =~ /^zebra$/i) { exec('zrancid', $router); }
-else {
+%vendortable = (
+ 'alteon' => 'arancid',
+ 'baynet' => 'brancid',
+ 'cat5' => 'cat5rancid',
+ 'cisco' => 'rancid',
+ 'css' => 'cssrancid',
+ 'enterasys' => 'rivrancid',
+ 'erx' => 'jerancid',
+ 'extreme' => 'xrancid',
+ 'ezt3' => 'erancid',
+ 'force10' => 'f10rancid',
+ 'foundry' => 'francid',
+ 'hitachi' => 'htrancid',
+ 'hp' => 'hrancid',
+ 'juniper' => 'jrancid',
+ 'mrtd' => 'mrancid',
+ 'netscaler' => 'nsrancid',
+ 'netscreen' => 'nrancid',
+ 'procket' => 'prancid',
+ 'redback' => 'rrancid',
+ 'riverstone' => 'rivrancid',
+ 'tnt' => 'tntrancid',
+ 'zebra' => 'zrancid'
+);
+
+if ($vendortable{$vendor} eq "") {
printf(STDERR "unknown router manufacturer for $router: $vendor\n");
exit(-1);
+} else {
+ exec($vendortable{$vendor} . " $router");
}
printf(STDERR "exec failed router manufacturer $vendor: $!\n");