X-Git-Url: http://git.rot13.org/?p=perl-cwmp.git;a=blobdiff_plain;f=scripts%2Ftcli.pl;h=45456e3f3e75bd3b1e4a8cb93822b0ef252f54a4;hp=162a4b4435a3e9691bbc1f1a48d978bfc8243113;hb=refs%2Fheads%2Fmaster;hpb=4cfba3ff18c39f8a227807a90e6ba5e27e34faad diff --git a/scripts/tcli.pl b/scripts/tcli.pl index 162a4b4..45456e3 100755 --- a/scripts/tcli.pl +++ b/scripts/tcli.pl @@ -3,21 +3,42 @@ use strict; use Expect; use Net::Telnet; +use Data::Dump qw/dump/; + +die "usage: $0 [modem] commands\n" unless @ARGV; + +my $modem = '10.0.0.138'; +$modem = shift @ARGV if $#ARGV >= 1; + +my $debug = 0; -my $modem = '192.168.1.254'; my @commands = ( ':system config led=flash', ); +sub ask { + my ( $prompt, $default ) = @_; + warn "## ask $prompt [default]"; + print "$prompt [$default] "; + my $in = ; + chomp($in); + $in = $default unless length($in) > 1; + return $in; +} + while(<>) { chomp; next if (/^#/ || /^\s*$/); - push @commands, $_; + my $l = $_; + warn "--$_--" if $debug; + $l =~ s/ask\(([^|\)]+)(?:\|([^\)]+))?\)/ask($1,$2)/eg; + warn "++ $l\n" if $debug; + push @commands, $l; } push @commands, ':system config led=off'; -my $debug = 0; +warn "## connecting to $modem\n"; my $telnet = new Net::Telnet( $modem ) or die "Cannot telnet to $modem: $!\n"; my $exp = Expect->exp_init($telnet);