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. --- 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 . 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 . + +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