spider/perl/Script.pm

62 lines
1.0 KiB
Perl

#
# module to do startup script handling
#
# Copyright (c) 2001 Dirk Koopman G1TLH
#
# $Id$
#
package Script;
use strict;
use DXUtil;
use DXDebug;
use DXChannel;
use DXCommandmode;
use DXVars;
use IO::File;
use vars qw($VERSION $BRANCH);
$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ || (0,0));
$main::build += $VERSION;
$main::branch += $BRANCH;
my $base = "$main::root/scripts";
sub new
{
my $pkg = shift;
my $script = shift;
my $fn = "$base/$script";
my $fh = new IO::File $fn;
return undef unless $fh;
my $self = bless {call => $script}, $pkg;
my @lines;
while (<$fh>) {
chomp;
push @lines, $_;
}
$fh->close;
$self->{lines} = \@lines;
return $self;
}
sub run
{
my $self = shift;
my $dxchan = shift;
foreach my $l (@{$self->{lines}}) {
unless ($l =~ /^\s*\#/ || $l =~ /^\s*$/) {
my @out = DXCommandmode::run_cmd($dxchan, $l);
if ($dxchan->can('send_ans')) {
$dxchan->send_ans(@out);
} else {
dbg($_) for @out;
}
}
}
}