X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=cmd%2Fhelp.pl;h=781edc3222167d9f80fa490cf79a87a96cbd8375;hb=171a7a0bf86e9732a33c7829e808129ec01c51c2;hp=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391;hpb=20b0104deaeab77fa7ab1444dbcedfcdbf5865f8;p=spider.git diff --git a/cmd/help.pl b/cmd/help.pl index e69de29b..781edc32 100644 --- a/cmd/help.pl +++ b/cmd/help.pl @@ -0,0 +1,63 @@ +# +# the help subsystem +# +# It is a very simple system in that you type in 'help ' and it +# looks for a file called .hlp in either the local_cmd directory +# or the cmd directory (in that order). +# +# if you just type in 'help' by itself you get what is in 'help.hlp'. +# +# Copyright (c) 1998 - Dirk Koopman G1TLH +# +# $Id$ +# + +my ($self, $line) = @_; +my @out; +my ($path, $fcmd) = ($main::cmd, "help");; +my @out; +my @inpaths = ($main::localcmd, $main::cmd); +my @helpfiles; + +# this is naff but it will work for now +$line = "help" if !$line; +$fcmd = lc $line; + +# each help file starts with a line that looks like:- +# +# === 0^EN^HELP^Description +# text +# text +# text +# +# The fields are:- privilege level, Language, full command name, short description +# + +if (!open(H, "$path/$fcmd.hlp")) { + return (1, "no help on $line available"); +} +my $in; +my $include = 0; +my @in = ; +close(H); + +foreach $in (@in) { + next if $in =~ /^\s*\#/; + chomp $in; + if ($in =~ /^===/) { + $include = 0; + $in =~ s/=== //; + my ($priv, $lang, $cmd, $desc) = split /\^/, $in; + next if $priv > $self->priv; # ignore subcommands that are of no concern + next if $self->lang && $self->lang ne $lang; + push @out, "$cmd - $desc"; + $include = 1; + next; + } + push @out, $in if $include; +} + +push @out, "No help available for $line" if @out == 0; + +return (1, @out); +