199505c28b
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15491 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
164 lines
3.9 KiB
Perl
Executable File
164 lines
3.9 KiB
Perl
Executable File
#!/usr/bin/perl
|
|
# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
|
|
|
|
# Runs each of the tools in the share/xcat/tools dir with the --help option
|
|
# and compiles the output into a tools readme file (both text version and
|
|
# html version).
|
|
|
|
use strict;
|
|
#use lib '.';
|
|
|
|
my $toolsdir = 'share/xcat/tools';
|
|
my $textreadme = "$toolsdir/README.txt";
|
|
my $htmlreadme = "$toolsdir/README.html";
|
|
#my $cachedir = '/tmp';
|
|
|
|
my @tools = getToolList($toolsdir);
|
|
#foreach (@tools) { print "$_\n"; }
|
|
|
|
# Put the intro text in the readme files
|
|
print "Building tools README files...\n";
|
|
open(TXT, ">$textreadme") or die "Error: could not open $textreadme for writing.\n";
|
|
open(HTML, ">$htmlreadme") or die "Error: could not open $htmlreadme for writing.\n";
|
|
writeintro(\*TXT, \*HTML, @tools);
|
|
|
|
# Run each tool with --help flag
|
|
foreach my $toolfile (@tools) {
|
|
my $cmd = "./$toolsdir/$toolfile --help";
|
|
my $output = `$cmd`;
|
|
if ($?) {
|
|
my $err = "Error: execution of '$cmd' failed with rc=" . ($?>>8) . ".\n";
|
|
print $err;
|
|
$output .= $err;
|
|
}
|
|
writetoolhelp(\*TXT, \*HTML, $toolfile, $output);
|
|
}
|
|
|
|
# close files
|
|
writeending(\*HTML);
|
|
close TXT;
|
|
close HTML;
|
|
|
|
exit;
|
|
|
|
|
|
# get the list of tool script files.
|
|
sub getToolList {
|
|
my $toolsdir = shift;
|
|
|
|
# 1st get toplevel dir listing
|
|
opendir(DIR, $toolsdir) or die "Error: could not read $toolsdir.\n";
|
|
my @files = grep !/^\./, readdir(DIR); # /
|
|
close(DIR);
|
|
|
|
# remove files that are not regular files (not dirs) and executable
|
|
my @newlist;
|
|
foreach my $f (@files) {
|
|
my $file = "$toolsdir/$f";
|
|
if ((-f $file) && (-x $file)) { push @newlist, $f; }
|
|
}
|
|
#foreach (@files) { print "$_\n"; }
|
|
#foreach (@newlist) { print "$_\n"; }
|
|
|
|
return sort @newlist;
|
|
}
|
|
|
|
|
|
# print some text to both readmes
|
|
sub printtoboth {
|
|
my $txt = shift;
|
|
my $html = shift;
|
|
my $str = shift;
|
|
print $txt $str;
|
|
print $html $str;
|
|
}
|
|
|
|
|
|
# write the up front stuff of the readme
|
|
sub writeintro {
|
|
my $txt = shift; # the file handle to the txt readme file
|
|
my $html = shift; # the file handle to the html readme file
|
|
# the rest of @_ contains the tool files in the dir
|
|
|
|
# write title part of readmes
|
|
print $txt <<'TXTEOS1';
|
|
xCAT TOOL DESCRIPTIONS
|
|
----------------------
|
|
|
|
TXTEOS1
|
|
|
|
print $html <<'HTMLEOS1';
|
|
<html>
|
|
<head>
|
|
<title>xCAT Tool Descriptions</title>
|
|
</head>
|
|
<body>
|
|
<h1 align="center">xCAT Tool Descriptions</h1>
|
|
HTMLEOS1
|
|
|
|
# write the table of contents for the html readme
|
|
print $html "<ul><li><a href='#Introduction'>Introduction</a>\n";
|
|
foreach my $tool (@_) {
|
|
print $html "<li><a href='#$tool'>$tool</a>\n";
|
|
}
|
|
print $html "</ul>\n";
|
|
|
|
# write the intro
|
|
print $html "<a id='Introduction'></a><h2>Introduction</h2><p>\n";
|
|
|
|
printtoboth $txt, $html, <<'EOS1';
|
|
This is a list of additional tools that are provided by xCAT. They are located
|
|
in /opt/xcat/share/xcat/tools/, but should also be in your path. Many of these
|
|
tools have been contributed by xCAT users that are not part of the core xCAT
|
|
development team. That means they might not be supported as well as the main
|
|
xCAT code. Read the help here, take a look at the code, and use at your own
|
|
risk. If you have problems with a tool, post to the xCAT mailing list and
|
|
the author will try to help you.
|
|
EOS1
|
|
|
|
print $html "</p>\n";
|
|
|
|
}
|
|
|
|
|
|
# write the help for one tool
|
|
sub writetoolhelp {
|
|
my $txt = shift; # the file handle to the txt readme file
|
|
my $html = shift; # the file handle to the html readme file
|
|
my $toolname = shift; # the script name of the tool
|
|
my $toolhelp = shift; # the --help output from the tool
|
|
|
|
# write the heading for this tool
|
|
print $txt <<"TXTEOS2";
|
|
|
|
|
|
$toolname
|
|
--------------------
|
|
|
|
TXTEOS2
|
|
|
|
print $html <<"HTMLEOS2";
|
|
<hr>
|
|
<a id='$toolname'></a>
|
|
<h2>$toolname</h2>
|
|
<pre>
|
|
HTMLEOS2
|
|
|
|
# write the actual contents of the tool help
|
|
printtoboth $txt, $html, $toolhelp;
|
|
|
|
# finish up
|
|
print $html <<"HTMLEOS3";
|
|
</pre>
|
|
HTMLEOS3
|
|
}
|
|
|
|
|
|
sub writeending {
|
|
my $html = shift;
|
|
# finish up the html readme
|
|
print $html <<'HTMLEOS4';
|
|
</body>
|
|
</html>
|
|
HTMLEOS4
|
|
} |