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