pve-docs/gen-index-includes.pl

61 lines
1.7 KiB
Perl
Executable File

#!/usr/bin/perl
use strict;
use warnings;
use JSON;
use IO::File;
use Data::Dumper;
my $fh = IO::File->new("link-refs.json", "r") ||
die "unable to open 'link-refs.json' - $!\n";
my $data_str = "";
while (<$fh>) { $data_str .= $_; }
my $fileinfo = decode_json($data_str);
my $cmd = shift;
die "missing command name" if !$cmd;
die "too many arguments" if scalar(@ARGV);
#print Dumper($fileinfo);
if ($cmd eq 'chapter-table') {
print '[width="100%",options="header"]' . "\n";
print "|====\n";
print "|Title|Link\n";
my $filelist = $fileinfo->{outfile}->{default};
foreach my $sourcefile (sort keys %$filelist) {
my $target = $filelist->{$sourcefile};
next if $target eq 'pve-admin-guide.html';
my $title = $fileinfo->{titles}->{default}->{$sourcefile} ||
die "not title for '$sourcefile'";
print "|$title|link:$target\[\]\n";
}
print "|====\n";
} elsif ($cmd =~ m/^man([158])page-table$/) {
my $section = $1;
print '[width="100%",cols="5*d",options="header"]' . "\n";
print "|====\n";
print "|Name 3+|Title|Link\n";
my $filelist = $fileinfo->{outfile}->{manvolnum};
foreach my $manpage (sort keys %$filelist) {
next if $section ne $fileinfo->{mansection}->{manvolnum}->{$manpage};
my $mantitle = $fileinfo->{titles}->{manvolnum}->{$manpage} ||
die "not manual title for '$manpage'";
my $title = $fileinfo->{titles}->{default}->{$manpage} ||
die "not title for '$manpage'";
# hack - remove command name prefix from titles
$title =~ s/^[a-z]+\s*-\s*//;
my $target = $filelist->{$manpage};
print "|$mantitle 3+|$title|link:$target.html\[$target\]\n\n";
}
print "|====\n";
} else {
die "unknown command '$cmd'\n";
}