Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /usr/bin/perl
- ##
- ## $Id: rancid-fe.in 3577 2016-12-27 20:23:23Z hank $
- ##
- ## rancid 3.7
- ## Copyright (c) 1997-2017 by Henry Kilmer and John Heasley
- ## All rights reserved.
- ##
- ## This code is derived from software contributed to and maintained by
- ## Henry Kilmer, John Heasley, Andrew Partan,
- ## Pete Whiting, Austin Schutz, and Andrew Fort.
- ##
- ## Redistribution and use in source and binary forms, with or without
- ## modification, are permitted provided that the following conditions
- ## are met:
- ## 1. Redistributions of source code must retain the above copyright
- ## notice, this list of conditions and the following disclaimer.
- ## 2. Redistributions in binary form must reproduce the above copyright
- ## notice, this list of conditions and the following disclaimer in the
- ## documentation and/or other materials provided with the distribution.
- ## 3. All advertising materials mentioning features or use of this software
- ## must display the following acknowledgement:
- ## This product includes software developed by Henry Kilmer and John
- ## Heasley and its contributors for RANCID.
- ## 4. Neither the name of RANCID nor the names of its
- ## contributors may be used to endorse or promote products derived from
- ## this software without specific prior written permission.
- ## 5. It is requested that non-binding fixes and modifications be contributed
- ## back to RANCID.
- ##
- ## THIS SOFTWARE IS PROVIDED BY Henry Kilmer, John Heasley AND CONTRIBUTORS
- ## ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- ## TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- ## PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COMPANY OR CONTRIBUTORS
- ## BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- ## CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- ## SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- ## INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- ## CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ## ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- ## POSSIBILITY OF SUCH DAMAGE.
- ##
- ## It is the request of the authors, but not a condition of license, that
- ## parties packaging or redistributing RANCID NOT distribute altered versions
- ## of the etc/rancid.types.base file nor alter how this file is processed nor
- ## when in relation to etc/rancid.types.conf. The goal of this is to help
- ## suppress our support costs. If it becomes a problem, this could become a
- ## condition of license.
- #
- # rancid-FE - front-end to rancid/jrancid/etc. for use with par.
- #
- # usage: rancid-fe <router>;<vendor>
- #
- require 5;
- my($script);
- my($router, $devtype) = split('\;', $ARGV[0]);
- $devtype =~ tr/[A-Z]/[a-z]/;
- if (! length($devtype)) {
- printf(STDERR "unknown router manufacturer for $router: $devtype\n");
- exit(-1);
- }
- # XXX use rancid::loadtype() to parse these files.
- foreach $file ("/etc/rancid/rancid.types.base",
- "/etc/rancid/rancid.types.conf") {
- open(INPUT, "< $file") || die "Could not open $file: $!";
- while (<INPUT>) {
- chomp;
- my($type, $directive, $value) = split('\;');
- $type =~ tr/[A-Z]/[a-z]/;
- $directive =~ tr/[A-Z]/[a-z]/;
- if ($type eq $devtype && $directive eq "script") {
- $script = $value;
- close(INPUT);
- goto FOUND;
- }
- }
- close(INPUT);
- }
- FOUND:
- if (! defined($script)) {
- printf(STDERR "unknown router manufacturer for $router: $devtype\n");
- exit(-1);
- } else {
- exec($script . " $router");
- }
- printf(STDERR "exec($script) failed router manufacturer $devtype: $!\n");
- exit(-1);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement