1 #!/bin/sh 2 # 3 # Print out the files in some or all lists. 4 # Usage: makeplist [-a arch] [-m machine] [-s setsdir] [-p prefix] setname pkgname 5 # 6 7 . ./sets.subr 8 prefix=/ 9 10 usage() 11 { 12 cat 1>&2 <<USAGE 13 Usage: ${0##*/} [-a arch] [-m machine] [-s setsdir] [-p prefix] setname pkgname 14 -a arch set arch (e.g, m68k, mips, powerpc) [$MACHINE_ARCH] 15 -m machine set machine (e.g, amiga, i386, macppc) [$MACHINE] 16 -s setsdir directory to find sets [$setsdir] 17 -p prefix prefix for created plist [$prefix] 18 setname pkgname set and package to build plist for 19 USAGE 20 exit 1 21 } 22 23 # handle args 24 while getopts a:m:ps: ch; do 25 case ${ch} in 26 a) 27 MACHINE_ARCH=${OPTARG} 28 MACHINE_CPU=$(arch_to_cpu ${OPTARG}) 29 ;; 30 m) 31 MACHINE=${OPTARG} 32 ;; 33 p) 34 prefix=${OPTARG} 35 ;; 36 s) 37 setsdir=${OPTARG} 38 ;; 39 *) 40 usage 41 ;; 42 esac 43 done 44 shift $((${OPTIND} - 1)) 45 if [ $# -ne 2 ]; then 46 usage 47 fi 48 setname="$1" 49 pkgname=$2 50 51 filename=/tmp/makeplist.$$ 52 ffilename=/tmp/makeplist.files.$$ 53 dfilename=/tmp/makeplist.dirs.$$ 54 55 list_set_files $setname | \ 56 env PLISTPKG=$pkgname awk ' 57 $2 == ENVIRON["PLISTPKG"] { 58 sub("^\\./", "", $1); 59 print $1 60 }' | sort -u > $filename 61 62 SELECTDIRS="-maxdepth 0 -type d" 63 SELECTNONDIRS="-maxdepth 0 ! -type d" 64 65 cd $prefix 66 # 67 # match the directories 68 # 69 xargs echo $SELECTDIRS < $filename | \ 70 while read ignore ignore ignore ignore args; do 71 [ -z "$args" ] && break 72 find $args $SELECTDIRS 73 done | awk '{ print "@dirrm " $1; }' > $dfilename 74 75 # 76 # match the non-directories 77 # 78 xargs echo $SELECTNONDIRS < $filename | \ 79 while read ignore ignore ignore ignore ignore args; do 80 [ -z "$args" ] && break 81 find $args $SELECTNONDIRS 82 done > $ffilename 83 84 cd - 85 86 echo "@cwd $prefix" 87 if [ -s $ffilename ]; then 88 cat $ffilename 89 fi 90 if [ -s $dfilename ]; then 91 sort -r $dfilename 92 fi 93 94 rm -f $filename $ffilename $dfilename 95 96 exit 0 97