diff options
author | P. J. McDermott <pjm@nac.net> | 2012-01-30 12:26:16 (EST) |
---|---|---|
committer | P. J. McDermott <pjm@nac.net> | 2012-01-30 12:26:16 (EST) |
commit | ebf34c455e973d5f41efe20cd4883772a34aa650 (patch) | |
tree | 65eb46cb0bc3e0f8e2531cd72b4b37a759465fb1 /src/oh-installdocs | |
parent | d918248289bac23935c0a91da7709aed45c1a1b6 (diff) |
Write and document oh-installdocs.
Diffstat (limited to 'src/oh-installdocs')
-rw-r--r-- | src/oh-installdocs | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/oh-installdocs b/src/oh-installdocs new file mode 100644 index 0000000..f29afa6 --- /dev/null +++ b/src/oh-installdocs @@ -0,0 +1,59 @@ +#! /bin/sh +# +# opkhelper +# src/oh-installdocs +# Install package documentation into a binary package staging area. +# +# Copyright (C) 2012 Patrick "P. J." McDermott +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +print_usage() +{ + printf 'Usage: %s providing_pkg\n' "$1" +} + +error() +{ + printf 'oh-installdocs: Error: %s\n' "${1}" >&2 + exit 1 +} + +if [ ${#} -ne 1 ]; then + print_usage ${0} >&2 + exit 1 +fi + +# Iterate through packages that have been installed. +for pkgdir in *.data/; do + pkg=${pkgdir%'.data/'} + mkdir -p ${pkg}.data/usr/share/doc/ + if [ ${pkg} = ${1} ]; then + # Make the providing package provide the documentation files. + printf 'oh-installdocs: Installing package documentation into package "%s"...\n' \ + "${pkg}" + mkdir -p ${pkg}.data/usr/share/doc/${pkg} + [ ! -f ../copyright ] && error 'Missing "copyright" file' + [ ! -f ../changelog ] && error 'Missing "changelog" file' + cp ../copyright ../changelog ${pkgdir}/usr/share/doc/${pkg} || \ + error 'Cannot copy documentation files' + else + # Make dependent packages link to the providing package's documentation + # directory. + printf 'oh-installdocs: Making link to documentation in package "%s"...\n' \ + "${pkg}" + ln -s /usr/share/doc/${1} ${pkgdir}/usr/share/doc/${pkg} || \ + error 'Cannot make link to documentation files' + fi +done |