12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #! /usr/bin/env perl
- # Copyright 2020 The OpenSSL Project Authors. All Rights Reserved.
- #
- # Licensed under the Apache License 2.0 (the "License"). You may not use
- # this file except in compliance with the License. You can obtain a copy
- # in the file LICENSE in the source distribution or at
- # https://www.openssl.org/source/license.html
- use strict;
- use warnings;
- use lib ".";
- use Getopt::Std;
- use Pod::Html;
- use File::Spec::Functions qw(:DEFAULT rel2abs);
- # Options.
- our($opt_i); # -i INFILE
- our($opt_o); # -o OUTFILE
- our($opt_t); # -t TITLE
- our($opt_r); # -r PODROOT
- getopts('i:o:t:r:');
- die "-i flag missing" unless $opt_i;
- die "-o flag missing" unless $opt_o;
- die "-t flag missing" unless $opt_t;
- die "-r flag missing" unless $opt_r;
- # We originally used realpath() here, but the Windows implementation appears
- # to require that the directory or file exist to be able to process the input,
- # so we use rel2abs() instead, which only processes the string without
- # looking further.
- $opt_i = rel2abs($opt_i) or die "Can't convert to real path: $!";
- $opt_o = rel2abs($opt_o) or die "Can't convert to real path: $!";
- $opt_r = rel2abs($opt_r) or die "Can't convert to real path: $!";
- pod2html
- "--infile=$opt_i",
- "--outfile=$opt_o",
- "--title=$opt_t",
- "--podroot=$opt_r",
- "--podpath=man1:man3:man5:man7",
- "--htmldir=..";
- # Read in contents.
- open F, "<$opt_o"
- or die "Can't read $opt_o, $!";
- my $contents = '';
- {
- local $/ = undef;
- $contents = <F>;
- }
- close F;
- unlink $opt_o;
- $contents =~
- s|href="http://man\.he\.net/(man\d/[^"]+)(?:\.html)?"|href="../$1.html"|g;
- open F, ">$opt_o"
- or die "Can't write $opt_o, $!";
- print F $contents;
- close F;
|