openssl/util/write-man-symlinks
Matt Caswell 9e7a641170 Create symlinks when installing man pages
In 1.1.1 when installing the man pages we created symlinks to the base
page for all functions described on the page. We need to continue doing
this.

Fixes #14846

Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/15312)
2021-05-20 10:28:06 +01:00

49 lines
1.2 KiB
Perl
Executable File

#! /usr/bin/env perl
# Copyright 2021 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
require 5.10.0;
use warnings;
use strict;
use FindBin;
use lib "$FindBin::Bin/perl";
use OpenSSL::Util::Pod;
if ($#ARGV + 1 != 5 || $ARGV[0] !~ /^(un)?install$/) {
print "Usage: write-man-symlinks [install|uninstall] src-dir build-dir man-page-name target-dir\n";
exit;
}
my $action = $ARGV[0];
my $srcdir = $ARGV[1];
my $builddir = $ARGV[2];
my $manname = $ARGV[3];
my $targetdir = $ARGV[4];
$manname =~ m|(.+)\.(.+)|;
my $mainf = $1;
my $section = $2;
die "Bad src file" if !defined $mainf;
my $podfile = "$srcdir/$mainf.pod";
#Some pod files are generated and are in the build dir
unless (-e $podfile) {
$podfile = "$builddir/$mainf.pod";
}
my %podinfo = extract_pod_info($podfile);
for my $name (@{$podinfo{names}}) {
next if $name eq $mainf;
if ($action eq "install") {
symlink "$targetdir/$manname", "$targetdir/$name.$section";
} else {
unlink "$targetdir/$name.$section";
}
}