1e1051a39Sopenharmony_ci#! /usr/bin/env perl
2e1051a39Sopenharmony_ci# Copyright 2021 The OpenSSL Project Authors. All Rights Reserved.
3e1051a39Sopenharmony_ci#
4e1051a39Sopenharmony_ci# Licensed under the Apache License 2.0 (the "License").  You may not use
5e1051a39Sopenharmony_ci# this file except in compliance with the License.  You can obtain a copy
6e1051a39Sopenharmony_ci# in the file LICENSE in the source distribution or at
7e1051a39Sopenharmony_ci# https://www.openssl.org/source/license.html
8e1051a39Sopenharmony_ci
9e1051a39Sopenharmony_ci
10e1051a39Sopenharmony_cirequire 5.10.0;
11e1051a39Sopenharmony_ciuse warnings;
12e1051a39Sopenharmony_ciuse strict;
13e1051a39Sopenharmony_ci
14e1051a39Sopenharmony_ciuse FindBin;
15e1051a39Sopenharmony_ciuse lib "$FindBin::Bin/perl";
16e1051a39Sopenharmony_ci
17e1051a39Sopenharmony_ciuse OpenSSL::Util::Pod;
18e1051a39Sopenharmony_ci
19e1051a39Sopenharmony_ciif ($#ARGV + 1 != 5 || $ARGV[0] !~ /^(un)?install$/) {
20e1051a39Sopenharmony_ci    print "Usage: write-man-symlinks [install|uninstall] src-dir build-dir man-page-name target-dir\n";
21e1051a39Sopenharmony_ci    exit;
22e1051a39Sopenharmony_ci}
23e1051a39Sopenharmony_ci
24e1051a39Sopenharmony_cimy $action = $ARGV[0];
25e1051a39Sopenharmony_cimy $srcdir = $ARGV[1];
26e1051a39Sopenharmony_cimy $builddir = $ARGV[2];
27e1051a39Sopenharmony_cimy $manname = $ARGV[3];
28e1051a39Sopenharmony_cimy $targetdir = $ARGV[4];
29e1051a39Sopenharmony_ci
30e1051a39Sopenharmony_ci$manname =~ m|(.+)\.(.+)|;
31e1051a39Sopenharmony_cimy $mainf = $1;
32e1051a39Sopenharmony_cimy $section = $2;
33e1051a39Sopenharmony_cidie "Bad src file" if !defined $mainf;
34e1051a39Sopenharmony_cimy $podfile = "$srcdir/$mainf.pod";
35e1051a39Sopenharmony_ci#Some pod files are generated and are in the build dir
36e1051a39Sopenharmony_ciunless (-e $podfile) {
37e1051a39Sopenharmony_ci    $podfile = "$builddir/$mainf.pod";
38e1051a39Sopenharmony_ci}
39e1051a39Sopenharmony_cimy %podinfo = extract_pod_info($podfile);
40e1051a39Sopenharmony_ci
41e1051a39Sopenharmony_cifor my $name (@{$podinfo{names}}) {
42e1051a39Sopenharmony_ci    next if $name eq $mainf;
43e1051a39Sopenharmony_ci    if ($action eq "install") {
44e1051a39Sopenharmony_ci        symlink "$manname", "$targetdir/$name.$section";
45e1051a39Sopenharmony_ci    } else {
46e1051a39Sopenharmony_ci        unlink "$targetdir/$name.$section";
47e1051a39Sopenharmony_ci    }
48e1051a39Sopenharmony_ci}
49