From: minima Date: Wed, 3 Jul 2002 13:40:23 +0000 (+0000) Subject: now add it! X-Git-Tag: R_1_50~48 X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=1ef2fd58669de7cae92418c4591b9fce5f66bfb0;p=spider.git now add it! --- diff --git a/cmd/demonstrate.pl b/cmd/demonstrate.pl new file mode 100644 index 00000000..04d50421 --- /dev/null +++ b/cmd/demonstrate.pl @@ -0,0 +1,45 @@ +#!/usr/bin/perl +# +# pretend that you are another user, execute a command +# as that user, then send the output back to them. +# +# This is for educating users.... +# +# Copyright (c) 2002 Dirk Koopman G1TLH +# +my ($self, $line) = @_; + +my $mycall = $self->call; +my $myuser = $self->user; +my $mypriv = $self->priv; + +my ($call, $newline) = split /\s+/, $line, 2; +$call = uc $call; +my $dxchan = DXChannel->get($call); + +return (1, $self->msg('e7', $call)) unless $dxchan; +if ($self->remotecmd) { + Log('DXCommand', "$mycall is trying to 'input' $call remotely"); + return (1, $self->msg('e5')); +} +if ($mypriv < 8) { + Log('DXCommand', "$mycall is trying to 'input' $call locally"); + return (1, $self->msg('e5')); +} + +$call = uc $call; +my $user = $dxchan->user; + +# set up basic environment +$self->call($call); +$self->user($user); +$self->priv($dxchan->priv); +Log('DXCommand', "input '$newline' as $call by $mycall"); +my @in = $self->run_cmd($newline); +$self->call($mycall); +$self->user($myuser); +$self->priv($mypriv); + +$dxchan->send($newline, @in); + +return (1, map { "->$call: $_" } @in);