updated git and svn scripts
[xrzperl.git] / formathelp
blob8c7beee2e52d706485d7082755a432f99bc704f0
1 #!/usr/bin/perl -w
2 ###APPNAME: formathelp
3 ###APPAUTHOR: root
4 ###APPDATE: Fri Sep 21 12:11:45 2007
5 ###APPVER: 0.1
6 ###APPDESC: format perl script help message
7 ###APPUSAGE: (Filename) [Args...]
8 ###APPEXAMPLE: formathelp "/share/bin/plhelp" [Additonal Option String]
9 ###APPOPTION: -h,--help:Display this help
10 use strict;
11 my $filename=shift;
12 my $DEFAULTOPT=shift;
13 $DEFAULTOPT="" unless($DEFAULTOPT);
15 $filename=$0 unless($filename);
16 foreach(@ARGV) {
17 $filename=$0 if($_ eq "-h");
18 $filename=$0 if($_ eq "--help");
21 open(TEXT,"<",$filename) or
22 die("***ERROR*** File not readable : $filename\n");
24 my %HELPVAR=("APPNAME"=>$filename);
26 while(<TEXT>) {
27 last unless(/^#/ or
28 /^my\s*\$APP/ or
29 /^use/ or
30 /^APP/);
31 if( /^#*(\w+):\s*(.*)\s*$/ or
32 /^my\s*\$(APP\w+)\s*=\s*"*(.*)"*\s*;\s*$/ or
33 /^#*(\w+)="(.*)"\s*/ or
34 /^#*(\w+)=(.*)\s*/) {
35 my $name=$1;
36 my $result=$2;
37 $result =~ s/\\t/\t/g;
38 $result =~ s/\\n/\n/g;
39 $HELPVAR{$name} = $result;
42 close(TEXT);
45 print($HELPVAR{APPNAME}) if($HELPVAR{APPNAME});
47 print(" V",$HELPVAR{APPVER}) if($HELPVAR{APPVER});
48 print("\n");
50 print("\t- ",$HELPVAR{APPDESC},"\n") if($HELPVAR{APPDESC});
51 if ($HELPVAR{APPAUTHOR}) {
52 print("\t- by $HELPVAR{APPAUTHOR}");
53 print(", $HELPVAR{APPDATE}") if($HELPVAR{APPDATE});
54 print("\n");
57 print("Usage:\n\t",$filename," ",$HELPVAR{APPUSAGE},"\n") if($HELPVAR{APPUSAGE});
58 if ($HELPVAR{APPOPTION}) {
59 $HELPVAR{APPOPTION} .= "|" . $DEFAULTOPT;
61 else {
62 $HELPVAR{APPOPTION}=$DEFAULTOPT;
65 print("Option:\n ") if($HELPVAR{APPOPTION});
66 my @HELPOPT;
67 foreach(split(/\|/,$HELPVAR{APPOPTION})) {
68 if(m/^\s*(.+)\s*:\s*(.+)\s*$/) {
69 my $c=$1;
70 my $str=$2;
71 $c = "-" . $c if($c !~ /^-/);
72 push(@HELPOPT,{opt=>$c,text=>$str});
75 foreach (@HELPOPT) {
76 printf("\t%-10s\t%s\n",$_->{opt},$_->{text});
80 print("Example:\n\t",$HELPVAR{APPEXAMPLE},"\n")
81 if($HELPVAR{APPEXAMPLE});
83 my $StdKey=join("|",qw/APPNAME APPVER APPDESC APPOPTION APPEXAMPLE APPUSAGE APPDATE APPAUTHOR/);
84 foreach(keys(%HELPVAR)) {
85 unless(/$StdKey/) {
86 print("$_:\n\t$HELPVAR{$_}\n");