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