mirror of
https://github.com/openssl/openssl.git
synced 2024-11-21 01:15:20 +08:00
dc18f036f1
It turns out that on VMS, pod2html only recognises VMS directory specifications if they contain a device name, which is accomplished by making them absolute. Otherwise, a VMS build that includes building the document HTML files ends up with an error like this: $ perl [---.downloads.openssl-3_0-snap-20210916.util]mkpod2html.pl -i [---.downloads.openssl-3_0-snap-20210916.doc.man1]CA.pl.pod -o [.DOC.HTML.MAN1]CA.PL.HTML -t "CA.pl" -r "[---.downloads.openssl-3_0-snap-20210916.doc]" [---.downloads.openssl-3_0-snap-20210916.util]mkpod2html.pl: error changing to directory -/-/-/downloads/openssl-3_0-snap-20210916/doc/: no such file or directory %SYSTEM-F-ABORT, abort Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/16626)
62 lines
1.7 KiB
Perl
Executable File
62 lines
1.7 KiB
Perl
Executable File
#! /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;
|