summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mk/bulk/printindex35
-rw-r--r--mk/bulk/printindex.1102
2 files changed, 119 insertions, 18 deletions
diff --git a/mk/bulk/printindex b/mk/bulk/printindex
index a63236e76c2..ff60d66edcf 100644
--- a/mk/bulk/printindex
+++ b/mk/bulk/printindex
@@ -1,5 +1,5 @@
#!/bin/sh
-# $NetBSD: printindex,v 1.25 2005/11/16 22:11:11 rillig Exp $
+# $NetBSD: printindex,v 1.26 2005/11/19 10:55:45 rillig Exp $
#
# Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -37,23 +37,6 @@
# POSSIBILITY OF SUCH DAMAGE.
#
-# usage: printindex [brokenfile [bulkfilesdir]]
-#
-# Generates a mapping from pkgsrc directories to the current package
-# version and prints it on stdout. Each line of the output has two
-# fields: the package directory (in the form category/package) and the
-# package version (in the form package-1.456nb3).
-#
-# If <brokenfile> is given, package-specific errors are logged to
-# <bulkfilesdir>/${pkgdir}/<brokenfile>. Otherwise no additional logging
-# takes place.
-#
-# The default for <bulkfilesdir> is the pkgsrc directory itself. If
-# <bulkfilesdir> differs from the pkgsrc directory, all directories
-# that are needed for the log files are created automatically.
-#
-# Note: printindex must be called from a pkgsrc root directory.
-
set -e
#
@@ -132,6 +115,22 @@ else
fi
#
+# Sanity checks, part 2
+#
+
+case $BULK_PREREQ in
+*[!-\ +./0-9A-Z_a-z]*)
+ echo "$0: error: BULK_PREREQ contains invalid characters. (Its value is \"${BULK_PREREQ}\".)" 1>&2
+ exit 1
+esac
+case $list in
+*[!-\ +./0-9A-Z_a-z]*)
+ echo "$0: error: The package list contains invalid characters. (Its value is \"${list}\".)" 1>&2
+ echo "$list" | tr ' ' '\n' > .list
+ exit 1
+esac
+
+#
# Print the table of PKGPATH and PKGNAME.
#
# The check for duplicates is necessary to prevents double entries in
diff --git a/mk/bulk/printindex.1 b/mk/bulk/printindex.1
new file mode 100644
index 00000000000..3128e18c20a
--- /dev/null
+++ b/mk/bulk/printindex.1
@@ -0,0 +1,102 @@
+.\" $NetBSD: printindex.1,v 1.1 2005/11/19 10:55:45 rillig Exp $
+.\"
+.\" Copyright (c) 2005 The NetBSD Foundation, Inc.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed to The NetBSD Foundation
+.\" by Roland Illig <rillig@NetBSD.org>.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by the NetBSD
+.\" Foundation, Inc. and its contributors.
+.\" 4. Neither the name of The NetBSD Foundation nor the names of its
+.\" contributors may be used to endorse or promote products derived
+.\" from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+.\" POSSIBILITY OF SUCH DAMAGE.
+.\"
+.Dd November 19, 2005
+.Dt printindex 1
+.Os
+.Sh NAME
+.Nm printindex
+.Nd generate a PKGPATH <=> PKGNAME database file
+.Sh SYNOPSIS
+.Nm
+.Op Ar brokenfile Op Ar bulkfilesdir
+.Sh DESCRIPTION
+Generates a mapping from pkgsrc directories to the current package
+version and prints it on stdout.
+Each line of the output has two fields:
+the package directory (in the form category/package) and the
+package version (in the form package-1.456nb3).
+.Pp
+If
+.Ar brokenfile
+is given, package-specific errors are logged to
+.Ar bulkfilesdir Ns / Ns
+.Va ${pkgdir} Ns / Ns
+.Ar brokenfile Ns .
+Otherwise no additional logging takes place.
+.Pp
+The default for
+.Ar bulkfilesdir
+is the pkgsrc directory itself.
+If
+.Ar bulkfilesdir
+differs from the pkgsrc directory, all directories that are needed for
+the log files are created automatically.
+.Sh LIMITATIONS
+.Nm
+must be called from a pkgsrc root directory.
+.Sh EXIT STATUS
+Non-zero if writing to a log file fails, zero otherwise.
+.Sh ENVIRONMENT
+.Bl -tag -width XXXXXX
+.It BMAKE
+The
+.Xr make 1
+program used to build packages.
+.It PKGLIST (optional)
+The list of packages to build an index from.
+.El
+.Sh FILES
+.Bl -tag -width XXXXXX
+.It Ar bulkfilesdir Ns / Ns .pkglist
+A cache for the list of packages when PKGLIST is unset.
+.El
+.\" .Sh EXAMPLES
+.Sh DIAGNOSTICS
+All diagnostics start with the string
+.Ql [printindex]
+and may span multiple lines.
+.Sh SEE ALSO
+.Xr printdepends 1
+.\" .Sh STANDARDS
+.Sh HISTORY
+.Nm
+appeared in 2001 as part of the bulk build framework.
+.Sh AUTHORS
+Many (see the CVS ChangeLog).
+.\" .Sh CAVEATS
+.\" .Sh BUGS
+.\" .Sh SECURITY CONSIDERATIONS