+++ /dev/null
-#!/usr/bin/perl
-
-use Cwd qw( realpath );
-use File::Basename qw( fileparse );
-
-@cfg = ('.wake', ( (fileparse( realpath($0) ))[1] ) . '.wake');
-$mac = {};
-
-$x = '[0-9a-fA-F]';
-$macre = "$x$x:$x$x:$x$x:$x$x:$x$x:$x$x";
-$ipre = "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}";
-
-foreach my $cfg (@cfg) {
- open(CFG, $cfg);
- while (<CFG>) {
- next if /^\s*#/;
- next if /^\s*$/;
-
- chomp;
- my($host, $hw, $ip) = split;
- push @{$mac->{lc($host)}}, { MAC => $hw, IP => $ip };
- }
-}
-
-if (@ARGV) {
- foreach $host (@ARGV) {
- if ($host =~ /$macre/) {
- print qx(wakeonlan $host);
- }
- elsif (@physical = @{$mac->{lc($host)}}) {
- foreach my $mac (@physical) {
- if ($mac->{IP}) {
- print qx(wakeonlan -i $mac->{IP} $mac->{MAC});
- }
- else {
- print qx(wakeonlan $mac->{MAC});
- }
- }
- }
- else {
- print lc($host) . ": no such host in the list.\n";
- }
- }
-}
-else {
- foreach $host (sort keys %$mac) {
- $physical = $mac->{lc($host)};
- foreach my $mac (@$physical) {
- print "$host -> $mac->{MAC} -> $mac->{IP}\n";
- }
- }
-}
-