4 ###APPDATE: Fri Sep 21 12:11:45 2007
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
13 $DEFAULTOPT="" unless($DEFAULTOPT);
15 $filename=$0 unless($filename);
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);
31 if( /^#*(\w+):\s*(.*)\s*$/ or
32 /^my\s*\$(APP\w+)\s*=\s*"*(.*)"*\s*;\s*$/ or
33 /^#*(\w+)="(.*)"\s*/ or
37 $result =~ s/\\t/\t/g;
38 $result =~ s/\\n/\n/g;
39 $HELPVAR{$name} = $result;
45 print($HELPVAR{APPNAME
}) if($HELPVAR{APPNAME
});
47 print(" V",$HELPVAR{APPVER
}) if($HELPVAR{APPVER
});
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
});
57 print("Usage:\n\t",$filename," ",$HELPVAR{APPUSAGE
},"\n") if($HELPVAR{APPUSAGE
});
58 if ($HELPVAR{APPOPTION
}) {
59 $HELPVAR{APPOPTION
} .= "|" . $DEFAULTOPT;
62 $HELPVAR{APPOPTION
}=$DEFAULTOPT;
65 print("Option:\n ") if($HELPVAR{APPOPTION
});
67 foreach(split(/\|/,$HELPVAR{APPOPTION
})) {
68 if(m/^\s*(.+)\s*:\s*(.+)\s*$/) {
71 $c = "-" . $c if($c !~ /^-/);
72 push(@HELPOPT,{opt
=>$c,text
=>$str});
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)) {
86 print("$_:\n\t$HELPVAR{$_}\n");