From ebf34c455e973d5f41efe20cd4883772a34aa650 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Mon, 30 Jan 2012 12:26:16 -0500 Subject: Write and document oh-installdocs. --- (limited to 'src/oh-installdocs') 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 . + +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 -- cgit v0.9.1