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 | |
parent | d918248289bac23935c0a91da7709aed45c1a1b6 (diff) |
Write and document oh-installdocs.
-rw-r--r-- | man/Makefile.in | 3 | ||||
-rw-r--r-- | man/oh-installdocs.1 | 30 | ||||
-rw-r--r-- | src/Makefile.in | 3 | ||||
-rw-r--r-- | src/oh-installdocs | 59 |
4 files changed, 93 insertions, 2 deletions
diff --git a/man/Makefile.in b/man/Makefile.in index 17db5bf..3ea062c 100644 --- a/man/Makefile.in +++ b/man/Makefile.in @@ -28,7 +28,8 @@ MANDIR = @mandir@ .SUFFIXES: OBJS = opkbuild.1 oh-checkbuilddeps.1 oh-applypatches.1 oh-copyconfig.1 \ - oh-strip.1 oh-installfiles.1 oh-gencontrol.1 oh-buildopk.1 + oh-strip.1 oh-installfiles.1 oh-installdocs.1 oh-gencontrol.1 \ + oh-buildopk.1 .PHONY: all all: $(OBJS) diff --git a/man/oh-installdocs.1 b/man/oh-installdocs.1 new file mode 100644 index 0000000..ed21653 --- /dev/null +++ b/man/oh-installdocs.1 @@ -0,0 +1,30 @@ +.\" Author: Patrick "P. J." McDermott +.TH oh-installdocs 1 "2012-01-30" "opkhelper-0.1.0" "opkg Build Helper Tools" +.SH NAME +oh-installdocs \- Install package documentation into a binary package staging +area. +.SH SYNOPSIS +.B oh-installdocs +.IR providing_pkg +.SH DESCRIPTION +.B oh-installdocs +copies package documentation files from the source package directory to the +staging area of the providing binary package and makes links in all other binary +packages to the provided documentation files. The providing binary package +should be depended on by all other binary packages built by the same source +package. +.SH COPYRIGHT +Copyright (C) 2012 Patrick "P. J." McDermott +.sp +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. +.sp +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. +.sp +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. diff --git a/src/Makefile.in b/src/Makefile.in index 77541c0..dfbb9d7 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -28,7 +28,8 @@ BINDIR = @bindir@ .SUFFIXES: OBJS = opkbuild oh-checkbuilddeps oh-applypatches oh-copyconfig \ - oh-strip oh-installfiles oh-gencontrol oh-buildopk + oh-strip oh-installfiles oh-installdocs oh-gencontrol \ + oh-buildopk .PHONY: all all: $(OBJS) 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 |