diff options
Diffstat (limited to 'mk/bulk/mkreadme')
-rwxr-xr-x | mk/bulk/mkreadme | 487 |
1 files changed, 0 insertions, 487 deletions
diff --git a/mk/bulk/mkreadme b/mk/bulk/mkreadme deleted file mode 100755 index 2999869616b..00000000000 --- a/mk/bulk/mkreadme +++ /dev/null @@ -1,487 +0,0 @@ -#!/bin/sh -# $NetBSD: mkreadme,v 1.8 2002/11/14 14:05:46 dmcmahill Exp $ -# -# Script for README.html generation -# -# Copyright (c) 2002 The NetBSD Foundation, Inc. -# All rights reserved. -# -# This code is derived from software contributed to The NetBSD Foundation -# by Dan McMahill. -# -# 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. -# - - -TMPDIR=${TMPDIR:-/tmp/mkreadme} -PKGSRCDIR=${PKGSRCDIR:-/usr/pkgsrc} -BMAKE=${BMAKE:-make} -AWK=${AWK:-/usr/bin/awk} - -usage(){ - echo "$prog - Generates README.html files for a pkgsrc tree" - echo "Usage: $prog [-c|--cdrom] [-C|--prune] [-d|--debug] [-f|--ftp] " - echo " [-m|--multi-arch] [-p|--pkgsrc directory] " - echo " [-P|--packages directory] [-r|--restart] " - echo " [-s|--single-arch] [-S|--save-database]" - echo " " - echo " $prog -h|--help" - echo " " - echo " $prog -v|--version" - echo " " - echo "The options supported by $prog are: " - echo " " - echo " -C|--prune Prune unused README.html files which may exist in" - echo " pkg directories which have been removed from CVS." - echo " " - echo " -c|--cdrom Generates CD-ROM README.html files" - echo " " - echo " -d|--debug Enables (extremely verbose) debug output" - echo " " - echo " -f|--ftp Generates FTP README.html files" - echo " " - echo " -h|--help Displays this help message" - echo " " - echo " -m|--multi-arch Assumes a packages directory layout like:" - echo " OS_VERSION/MACHINE_ARCH/ for example:" - echo " 1.{5,6}/{alpha,i386,sparc,vax}" - echo " " - echo " -p|--pkgsrc dir Specifies the pkgsrc directory. Defaults to" - echo " The value of the PKGSRCDIR environment variable" - echo " if set or /usr/pkgsrc otherwise." - echo " " - echo " -P|--packages dir Specifies the packages directory." - echo " " - echo " -r|--restart Restart. This option assumes that the database file" - echo " from a previous run still exists and that the script" - echo " should use that instead of recreating the database." - echo " " - echo " -s|--single-arch Assumes a single OS release and MACHINE_ARCH binary" - echo " packages directory structure." - echo " " - echo " -S|--save-database Does not delete the database file after the run." - echo " This is useful for debugging or re-running this script" - echo " with the -r option." - echo " " - echo " -v|--version Displays the version of this script and exits." - echo " " - echo "Example: $prog -p /pub/NetBSD/packages/pkgsrc -P /pub/NetBSD/packages -m -f" - echo " " -} - -clean_and_exit(){ - if [ "x$DEBUG" = "xno" -a "x$restart" = "xno" -a "x$save" = "xno" ]; then - rm -fr $TMPDIR - else - echo "Debugging output left in $TMP" - fi - exit 1 -} - -prog=$0 - - -###################################################################### -# -# Handle command line options -# -###################################################################### - -ftp_readme=no -restart=no -prune=no -DEBUG=no -save=no - -while - test -n "$1" -do - case "$1" - in - - # We're generating README.html's for a CD-ROM - -c|--cdrom) - ftp_readme=no - shift - ;; - - # Prune old README.html files from pkgs which no longer exist - -C|--prune) - prune=yes - shift - ;; - - # Turn on debugging - -d|--debug) - DEBUG=yes - shift - ;; - - # We're generating README.html's for a CD-ROM - -f|--ftp) - ftp_readme=yes - shift - ;; - - - # Help - -h|--help) - usage - exit 0 - ;; - - # assume a OS_RELEASE/MACHINE_ARCH/ layout for the binary pkgs - -m|--multi-arch) - multiarch=yes - shift - ;; - - # Specify pkgsrc directory - -p|--pkgsrc) - PKGSRCDIR=$2 - shift 2 - ;; - - # Specify PACKAGES directory - -P|--packages) - PKGDIR=$2 - shift 2 - ;; - - # Restart (ie, don't re-generate the database file) - -r|--restart) - restart=yes - shift - ;; - - # assume a single directory structure layout for the binary pkgs - -s|--single-arch) - multiarch=no - shift - ;; - - # Save the database files - -S|--save-database) - save=yes - shift - ;; - - # Version - -v|--version) - ${AWK} '/^#[ \t]*\$NetBSD/ {gsub(/,v/,"",$3);printf("%s: Version %s, %s\n",$3,$4,$5); exit 0;}' $prog - exit 0 - ;; - - -*) echo "$prog: ERROR: $1 is not a valid option" - usage - clean_and_exit - ;; - - *) - break - ;; - - esac -done - -if [ "x$DEBUG" = "xyes" ]; then - set -v -fi - -if [ ! -d ${PKGSRCDIR} ]; then - echo "ERROR: package source directory ${PKGSRCDIR} does not exist" - echo "" - clean_and_exit -fi - -if [ ! -d $TMPDIR ]; then - mkdir -p $TMPDIR -fi - -DEPENDSTREEFILE=$TMPDIR/dependstree -export DEPENDSTREEFILE -DEPENDSFILE=$TMPDIR/depends -export DEPENDSFILE -SUPPORTSFILE=$TMPDIR/supports -export SUPPORTSFILE -INDEXFILE=$TMPDIR/index -export SUPPORTSFILE -ORDERFILE=$TMPDIR/order -export ORDERFILE -DATABASEFILE=$TMPDIR/database -export DATABASEFILE -BINPKGFILE=$TMPDIR/binpkglist - -echo "Starting README.html generation: `date`" - -###################################################################### -# -# Extract key pkgsrc configuration variables -# -###################################################################### - -echo " " -echo "Extracting configuration variables:" -echo " " -if [ -d ${PKGSRCDIR}/pkgtools/pkglint ]; then - cd ${PKGSRCDIR}/pkgtools/pkglint - - for v in DISTDIR PACKAGES PKGREPOSITORYSUBDIR PKG_SUFX MACHINE_ARCH PKG_URL OPSYS OS_VERSION FTP_PKG_URL_HOST FTP_PKG_URL_DIR CDROM_PKG_URL_HOST CDROM_PKG_URL_DIR - do - val=`make show-var VARNAME=${v}` - if [ $? != 0 ]; then - echo "Error: make show-var VARNAME=${v} in `pwd` " - echo "Failed. This is a fatal error" - clean_and_exit - fi - echo "$v=$val" - eval ${v}=${val} - done -else - echo "Error: ${PKGSRCDIR}/pkgtools/pkglint does not seem to exist" - exit 1 -fi - - -###################################################################### -# -# Decide on FTP vs CDROM README.html files -# -###################################################################### - -if [ "$ftp_readme" = "yes" ]; then - PKG_URL=${FTP_PKG_URL_HOST}${FTP_PKG_URL_DIR} - echo "Will generate FTP readme files with PKG_URL=$PKG_URL" -else - PKG_URL=${CDROM_PKG_URL_HOST}${CDROM_PKG_URL_DIR} - echo "Will generate CD-ROM readme files with PKG_URL=$PKG_URL" -fi - -###################################################################### -# -# Check for command line switch for packages directory -# -###################################################################### - -# we've been given the directory as a command line switch -if [ ! -z "$PKGDIR" ]; then - PACKAGES=$PKGDIR - echo "PACKAGES specified on command line to be $PKGDIR" -fi - -###################################################################### -# -# Decide in binary package directory layout -# -###################################################################### - - -# If PACKAGES is set to the default (../../pkgsrc/packages), the current -# ${MACHINE_ARCH} and "release" (uname -r) will be used. Otherwise a directory -# structure of ...pkgsrc/packages/`uname -r`/${MACHINE_ARCH} is assumed. -# -# This is the logic from bsd.pkg.mk, but I think I'd like to change it to -# come from a command line switch - -if [ -z "$multiarch" -a -e ${PACKAGES} ]; then - cd ${PACKAGES} - case `pwd` in - */pkgsrc/packages) - multiarch=no - ;; - - *) - multiarch=yes - ;; - esac -fi - -if [ "x$multiarch" = "xyes" ]; then - echo "Will generate multi-release, multi-arch readme files" -else - echo "Will generate single-release, single-arch readme files" -fi - - -###################################################################### -# -# Extract Database for All Packages (longest step) -# -###################################################################### - -if [ "x$restart" = "xno" ] ; then - echo " " - echo "Extracting data. This could take a while" - echo " " - npkg=1 - - # make sure we don't have an old database lying around - rm -fr $DATABASEFILE - - cd ${PKGSRCDIR} - list=`grep '^[[:space:]]*'SUBDIR */Makefile | sed 's,/Makefile.*=[[:space:]]*,/,'` - for pkgdir in $list - do - if [ ! -d $pkgdir ]; then - echo " " - echo "WARNING: the package directory $pkgdir is listed in" > /dev/stderr - echo $pkgdir | sed 's;/.*;/Makefile;g' > /dev/stderr - echo "but the directory does not exist. Please fix this!" > /dev/stderr - else - cd $pkgdir - l=`${BMAKE} print-summary-data` - if [ $? != 0 ]; then - echo "WARNING (printdepends): the package in $pkgdir had problem with" \ - > /dev/stderr - echo " ${BMAKE} print-summary-data" > /dev/stderr - echo " database information for this package" > /dev/stderr - echo " will be dropped." > /dev/stderr - ${BMAKE} print-summary-data 2>&1 > /dev/stderr - else - echo "$l" >> $DATABASEFILE - fi - fi - echo -n "." - if [ `expr $npkg % 100 = 0` -eq 1 ]; then - echo " " - echo "$npkg" - fi - npkg=`expr $npkg + 1` - cd $PKGSRCDIR - done -else - echo " " - echo "Using existing database (are you sure you wanted the -r/--restart flag?)" - echo " " - if [ ! -f $DATABASEFILE ]; then - echo " " - echo "ERROR: You have use the -r/--restart flag but the database " - echo " file $DATABASEFILE does not exist" - echo " " - exit 1 - fi -fi - -###################################################################### -# -# Generate the package and category README.html files -# -###################################################################### - -echo " " -echo "Generating package README.html files" -echo " " -if [ "x$DEBUG" = "xyes" ]; then - debug=1; -else - debug=0; -fi - -${AWK} -f ${PKGSRCDIR}/mk/bulk/genreadme.awk \ - builddependsfile=${TMPDIR}/pkgsrc.builddepends.debug \ - debug=$debug \ - dependsfile=${TMPDIR}/pkgsrc.depends.debug \ - DISTDIR=$DISTDIR \ - MACHINE_ARCH=$MACHINE_ARCH \ - MULTIARCH=$multiarch \ - OPSYS=$OPSYS \ - OS_VERSION=$OS_VERSION \ - PACKAGES=$PACKAGES \ - PKG_SUFX=$PKG_SUFX \ - PKG_URL=$PKG_URL \ - PKGREPOSITORYSUBDIR=$PKGREPOSITORYSUBDIR \ - PKGSRCDIR=$PKGSRCDIR \ - TMPDIR=$TMPDIR \ - ${DATABASEFILE} - -if [ $? != 0 ]; then - echo "Error: genreadme.awk failed to create README.html files" - clean_and_exit -fi - -###################################################################### -# -# Generate the README-IPv6.html file -# -###################################################################### - -echo " " -echo "Generating the README-IPv6.html file" -echo " " -cd ${PKGSRCDIR} -ipv6=${TMPDIR}/ipv6pkgs -ipv6_entries=${TMPDIR}/ipv6_entries -grep -l '^BUILD_DEFS.*=.*USE_INET6' */*/Makefile | sed 's;Makefile;;g' > $ipv6 -fgrep -f $ipv6 README-all.html | sort -t/ +1 > $ipv6_entries -sed \ - -e "/%%TRS%%/r${ipv6_entries}" \ - -e '/%%TRS%%/d' \ - templates/README.ipv6 > ${TMPDIR}/README-IPv6.html -if [ $? != 0 ]; then - echo "Error: README-IPv6.html generation failed (on sed script)" - clean_and_exit -fi -if [ ! -f README-IPv6.html ] || ! cmp -s ${TMPDIR}/README-IPv6.html README-IPv6.html ; then - mv -f ${TMPDIR}/README-IPv6.html README-IPv6.html -else - echo "README-IPv6.html is unchanged (no changes were needed)" -fi - -###################################################################### -# -# Prune README.html files which are no longer needed -# -###################################################################### -if [ "x$prune" = "xyes" ]; then - echo " " - echo "Pruning unused README.html files" - echo " " - cd ${PKGSRCDIR} - for d in `ls -d */*` ; do - if [ -d $d -a ! -f ${d}/Makefile -a -f ${d}/README.html ]; then - echo "Pruning ${d}/README.html which is no longer used" - rm -f ${d}/README.html - fi - done -fi - -###################################################################### -# -# All done. Clean (if needed) and exit -# -###################################################################### -echo " " -echo "README.html generation finished: `date`" -echo " " -if [ "x$DEBUG" = "xno" -a "x$restart" = "xno" -a "x$save" = "xno" ]; then - rm -fr $TMPDIR -else - echo "Debugging output left in $TMPDIR" -fi - |