NetBSD/distrib/sets/makeobsolete
jwise f2cc32c633 Compatible upgrade to set list behavior -- any (whitespace separated) fields
after the first in each line of a set list are ignored.  This introduces
no change in current set list behavior, but will need to be revisited if
we wish to distribute files with spaces in their names -- in this case we can
move to tab separated fields or some other behavior.

Current set lists work exactly as before, but in the future set lists may
have additional fields for use in a system packaging script.

I will post a detailed work plan for the system package system which uses
this to tech-pkg and tech-install in the next day or so.
2000-01-23 20:31:17 +00:00

89 lines
1.9 KiB
Bash
Executable File

#!/bin/sh
#
# $NetBSD: makeobsolete,v 1.2 2000/01/23 20:31:17 jwise Exp $
#
# Print out the obsolete files for a set
# Usage: makeobsolete [-b] [-x] [-a arch] [-m machine] [-s setsdir] \
# [-t target] [setname ...]
#
# set defaults
: ${MAKE=make}
machine=${MACHINE:-`printf 'xxx:\n\techo ${MACHINE}' | $MAKE -s -f-`}
arch=${MACHINE_ARCH:-`printf 'xxx:\n\techo ${MACHINE_ARCH}' | $MAKE -s -f-`}
setd=`pwd`
nlists="base comp etc games man misc secr text"
xlists="xbase xcomp xcontrib xfont xserver"
lists=$nlists
target=./dist
# handle args
while : ; do
case $1 in
-b*)
lists="$xlists $nlists"
;;
-x*)
lists=$xlists;;
-a*)
arch=$2; shift
;;
-m*)
machine=$2; shift
;;
-s*)
setd=$2; shift
;;
-t*)
target=$2;shift
;;
-*)
cat 1>&2 <<USAGE
Usage: $0 [-a arch] [-m machine] [-s setsdir] [setname ...]
-b make netbsd + x11 lists
-x only make x11 lists
-a arch set arch (e.g, m68k, mips, powerpc) [$arch]
-m machine set machine (e.g, amiga, i386, macppc) [$machine]
-s setsdir directory to find sets [$setd]
-t target target directory [$target]
[setname ...] sets to build
USAGE
exit 1
;;
*)
break
;;
esac
shift
done
if [ -n "$1" ]; then
lists="$*"
fi
# Convert mipse[lb] to mips after processing command line arguments.
arch=`echo $arch | sed s,^mipse.,mips,`
if [ ! -d $target ] ; then
echo "target directory [$target] doesn't exists"
exit 1
fi
for setname in $lists; do
file=$target/${setname}_obsolete
(
if [ -f $setd/lists/$setname/obsolete.mi ]; then
awk -- '{print $1}' $setd/lists/$setname/obsolete.mi
fi
if [ "$machine" != "$cpu" -a \
-f $setd/lists/$setname/obsolete.${arch} ]; then
awk -- '{print $1}' $setd/lists/$setname/obsolete.${arch}
fi
if [ -f $setd/lists/$setname/obsolete.${machine} ]; then
awk -- '{print $1}' $setd/lists/$setname/obsolete.${machine}
fi) | egrep -v '^#' | sort -u > $file
if [ ! -s $file ] ; then
rm $file
fi
done | egrep -v '^#' | sort -u