summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am1
-rw-r--r--scripts/vyatta-identify-interface.pl60
-rw-r--r--templates/show/interfaces/ethernet/node.tag/identify/node.def2
3 files changed, 63 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
index 6eaec65..d360084 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -21,6 +21,7 @@ bin_sudo_users_SCRIPTS += scripts/vyatta-show-log-all
bin_sudo_users_SCRIPTS += scripts/vyatta-show-log-file
bin_sudo_users_SCRIPTS += scripts/vyatta-show-dmesg
bin_sudo_users_SCRIPTS += scripts/vyatta-show-dmesg-all
+bin_sudo_users_SCRIPTS += scripts/vyatta-identify-interface.pl
cpiop = find . ! -regex '\(.*~\|.*\.bak\|.*\.swp\|.*\#.*\#\)' -print0 | \
cpio -0pd
diff --git a/scripts/vyatta-identify-interface.pl b/scripts/vyatta-identify-interface.pl
new file mode 100644
index 0000000..8837652
--- /dev/null
+++ b/scripts/vyatta-identify-interface.pl
@@ -0,0 +1,60 @@
+#!/usr/bin/perl
+#
+# Module: vyatta-identify-interface.pl
+#
+# **** License ****
+# Version: VPL 1.0
+#
+# The contents of this file are subject to the Vyatta Public License
+# Version 1.0 ("License"); you may not use this file except in
+# compliance with the License. You may obtain a copy of the License at
+# http://www.vyatta.com/vpl
+#
+# Software distributed under the License is distributed on an "AS IS"
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+# the License for the specific language governing rights and limitations
+# under the License.
+#
+# This code was originally developed by Vyatta, Inc.
+# Portions created by Vyatta are Copyright (C) 2007 Vyatta, Inc.
+# All Rights Reserved.
+#
+# Author: An-Cheng Huang
+# Date: February 2008
+# Description: Script to visually identify an interface
+#
+# **** End License ****
+
+use strict;
+
+my $intf = shift;
+
+if (!($intf =~ /^eth\d+/)) {
+ print STDERR "This command only supports Ethernet interfaces\n";
+ exit 1;
+}
+
+if (! -e "/sys/class/net/$intf") {
+ print STDERR "\"$intf\" is not a valid interface\n";
+ exit 1;
+}
+
+my $cpid = fork();
+if ($cpid == 0) {
+ # child
+ print "Interface $intf should be blinking now.\n";
+ print "Press Enter to stop...\n";
+ exec("ethtool -p $intf");
+ # not reachable
+ exit 0;
+} else {
+ # parent
+ my $c = 0;
+ while (($c = getc) ne "\n") {
+ }
+ kill 9, $cpid;
+ waitpid $cpid, 0;
+}
+
+exit 0;
+
diff --git a/templates/show/interfaces/ethernet/node.tag/identify/node.def b/templates/show/interfaces/ethernet/node.tag/identify/node.def
new file mode 100644
index 0000000..c0082e1
--- /dev/null
+++ b/templates/show/interfaces/ethernet/node.tag/identify/node.def
@@ -0,0 +1,2 @@
+help: Visually identify the specified Ethernet interface
+run: sudo ${vyatta_bindir}/sudo-users/vyatta-identify-interface.pl $4