19682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#! /bin/csh -ef
29682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
39682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallset prog = `/usr/bin/basename $0`
49682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallset usage = "Usage: $prog [-f] root-dir info-file [tiff-file] [-d dest-dir] [-r resource-dir] [-traditional | -gnutar]"
59682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallset noglob
69682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
79682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallif (-x /usr/bin/mkbom) then
89682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    set mkbom=/usr/bin/mkbom
99682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    set lsbom=/usr/bin/lsbom
109682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallelse
119682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    set mkbom=/usr/etc/mkbom
129682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    set lsbom=/usr/etc/lsbom
139682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallendif
149682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
159682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallif (-x /usr/bin/awk) then
169682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    set awk=/usr/bin/awk
179682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallelse
189682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    set awk=/bin/awk
199682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallendif
209682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
219682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallset gnutar=/usr/bin/gnutar
229682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallset tar=/usr/bin/tar
239682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallset pax=/bin/pax
249682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
259682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall# gather parameters
269682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallif ($#argv == 0) then
279682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    echo $usage
289682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    exit(1)
299682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallendif
309682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
319682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallwhile ( $#argv > 0 )
329682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    switch ( $argv[1] )
339682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	case -d:
349682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    if ( $?destDir ) then
359682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		echo ${prog}: dest-dir parameter already set to ${destDir}.
369682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		echo $usage
379682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		exit(1)
389682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    else if ( $#argv < 2 ) then
399682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		echo ${prog}: -d option requires destination directory.
409682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		echo $usage
419682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		exit(1)
429682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    else
439682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		set destDir = $argv[2]
449682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		shift; shift
459682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		breaksw
469682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    endif
479682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	case -f:
489682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    if ( $?rootDir ) then
499682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		echo ${prog}: root-dir parameter already set to ${rootDir}.
509682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		echo $usage
519682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		exit(1)
529682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    else if ( $#argv < 2 ) then
539682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		echo ${prog}: -f option requires package root directory.
549682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		echo $usage
559682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		exit(1)
569682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    else
579682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		set rootDir = $argv[2]
589682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		set fflag
599682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		shift; shift
609682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		breaksw
619682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    endif
629682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	case -r:
639682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    if ( $?resDir ) then
649682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		echo ${prog}: resource-dir parameter already set to ${resDir}.
659682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		echo $usage
669682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		exit(1)
679682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    else if ( $#argv < 2 ) then
689682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		echo ${prog}: -r option requires package resource directory.
699682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		echo $usage
709682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		exit(1)
719682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    else
729682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		set resDir = $argv[2]
739682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		shift; shift
749682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		breaksw
759682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    endif
769682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	case -traditional:
779682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    set usetar
789682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall            unset usegnutar
799682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    unset usepax
809682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    breaksw
819682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall        case -gnutar:
829682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    set usegnutar
839682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall            unset usepax
849682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    unset usetar
859682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	case -B:
869682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    # We got long file names, better use bigtar instead
879682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    #set archiver = /NextAdmin/Installer.app/Resources/installer_bigtar
889682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    echo 2>&1 ${prog}: -B flag is no longer relevant.
899682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    shift
909682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    breaksw
919682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	case -*:
929682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    echo ${prog}: Unknown option: $argv[1]
939682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    echo $usage
949682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    exit(1)
959682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	case *.info:
969682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    if ( $?info ) then
979682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		echo ${prog}: info-file parameter already set to ${info}.
989682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		echo $usage
999682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		exit(1)
1009682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    else
1019682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		set info = "$argv[1]"
1029682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		shift
1039682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		breaksw
1049682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    endif
1059682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	case *.tiff:
1069682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    if ( $?tiff ) then
1079682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		echo ${prog}: tiff-file parameter already set to ${tiff}.
1089682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		echo $usage
1099682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		exit(1)
1109682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    else
1119682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		set tiff = "$argv[1]"
1129682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		shift
1139682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		breaksw
1149682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    endif
1159682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	default:
1169682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    if ( $?rootDir ) then
1179682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		echo ${prog}: unrecognized parameter: $argv[1]
1189682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		echo $usage
1199682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		exit(1)
1209682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    else
1219682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		set rootDir = "$argv[1]"
1229682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		shift
1239682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		breaksw
1249682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	    endif
1259682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    endsw
1269682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallend
1279682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
1289682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall# check for mandatory parameters
1299682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallif ( ! $?rootDir ) then
1309682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    echo ${prog}: missing root-dir parameter.
1319682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    echo $usage
1329682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    exit(1)
1339682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallelse if ( ! $?info) then
1349682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    echo ${prog}: missing info-file parameter.
1359682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    echo $usage
1369682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    exit(1)
1379682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallendif
1389682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
1399682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall# destDir gets default value if unset on command line
1409682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallif ( $?destDir ) then
1419682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    /bin/mkdir -p $destDir
1429682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallelse
1439682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    set destDir = .
1449682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallendif
1459682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
1469682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall# derive the root name for the package from the root name of the info file
1479682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallset root = `/usr/bin/basename $info .info`
1489682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
1499682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall# create package directory
1509682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallset pkg = ${destDir}/${root}.pkg
1519682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallecho Generating Installer package $pkg ...
1529682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallif ( -e $pkg ) /bin/rm -rf $pkg
1539682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall/bin/mkdir -p -m 755 $pkg
1549682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
1559682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall# (gnu)tar/pax and compress root directory to package archive
1569682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallecho -n "	creating package archive ... "
1579682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallif ( $?fflag ) then
1589682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    set pkgTop = ${rootDir:t}
1599682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    set parent = ${rootDir:h}
1609682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    if ( "$parent" == "$pkgTop" ) set parent = "."
1619682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallelse
1629682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    set parent = $rootDir
1639682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    set pkgTop = .    
1649682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallendif
1659682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallif ( $?usetar ) then
1669682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    set pkgArchive = $pkg/$root.tar.Z
1679682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    (cd $parent; $tar -w $pkgTop) | /usr/bin/compress -f -c > $pkgArchive
1689682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallelse if ( $?usegnutar ) then
1699682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    set pkgArchive = $pkg/$root.tar.gz
1709682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    (cd $parent; $gnutar zcf $pkgArchive $pkgTop)
1719682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallelse
1729682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    set pkgArchive = $pkg/$root.pax.gz
1739682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    (cd $parent; $pax -w -z -x cpio $pkgTop) > $pkgArchive
1749682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallendif
1759682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall/bin/chmod 444 $pkgArchive
1769682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallecho done.
1779682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
1789682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall# copy info file to package
1799682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallset pkgInfo = $pkg/$root.info
1809682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallecho -n "	copying ${info:t} ... "
1819682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall/bin/cp $info $pkgInfo
1829682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall/bin/chmod 444 $pkgInfo
1839682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallecho done.
1849682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
1859682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall# copy tiff file to package
1869682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallif ( $?tiff ) then
1879682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    set pkgTiff = $pkg/$root.tiff
1889682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    echo -n "	copying ${tiff:t} ... "
1899682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    /bin/cp $tiff $pkgTiff
1909682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    /bin/chmod 444 $pkgTiff
1919682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    echo done.
1929682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallendif
1939682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
1949682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall# copy resources to package
1959682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallif ( $?resDir ) then
1969682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    echo -n "	copying ${resDir:t} ... "
1979682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
1989682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    # don't want to see push/pop output
1999682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    pushd $resDir > /dev/null
2009682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	# get lists of resources. We'll want to change
2019682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	# permissions on just these things later.
2029682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall        set directoriesInResDir = `find . -type d`
2039682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall        set filesInResDir = `find . -type f`
2049682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    popd > /dev/null
2059682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
2069682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    # copy the resource directory contents into the package directory
2079682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    foreach resFile (`ls $resDir`)
2089682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	cp -r $resDir/$resFile $pkg
2099682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    end
2109682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
2119682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    pushd $pkg > /dev/null
2129682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	# Change all directories to +r+x, except the package
2139682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	# directory itself
2149682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall        foreach resFileItem ($directoriesInResDir)
2159682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall            if ( $resFileItem != "." ) then
2169682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall                chmod 555 $resFileItem
2179682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall            endif
2189682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall        end
2199682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	# change all flat files to read only
2209682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall        foreach resFileItem ($filesInResDir)
2219682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall            chmod 444 $resFileItem
2229682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall        end
2239682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    popd > /dev/null
2249682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
2259682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    echo done.
2269682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallendif
2279682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
2289682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall# generate bom file
2299682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallset pkgBom = $pkg/$root.bom
2309682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallecho -n "	generating bom file ... "
2319682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall/bin/rm -f $pkgBom
2329682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallif ( $?fflag ) then
2339682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    $mkbom $parent $pkgBom >& /dev/null
2349682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallelse
2359682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    $mkbom $rootDir $pkgBom >& /dev/null
2369682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallendif
2379682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall/bin/chmod 444 $pkgArchive
2389682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallecho done.
2399682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	
2409682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall# generate sizes file
2419682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallset pkgSizes = $pkg/$root.sizes
2429682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallecho -n "	generating sizes file ... "
2439682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
2449682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall# compute number of files in package
2459682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallset numFiles = `$lsbom -s $pkgBom | /usr/bin/wc -l`
2469682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
2479682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall# compute package size when compressed
2489682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall@ compressedSize = `/usr/bin/du -k -s $pkg | $awk '{print $1}'`
2499682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall@ compressedSize += 3		# add 1KB each for sizes, location, status files
2509682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
2519682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall@ infoSize = `/bin/ls -s $pkgInfo | $awk '{print $1}'`
2529682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall@ bomSize = `/bin/ls -s $pkgBom | $awk '{print $1}'`
2539682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallif ( $?tiff ) then
2549682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    @ tiffSize = `/bin/ls -s $pkgTiff | $awk '{print $1}'`
2559682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallelse
2569682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall    @ tiffSize = 0
2579682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallendif 
2589682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
2599682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall@ installedSize = `/usr/bin/du -k -s $rootDir | $awk '{print $1}'`
2609682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall@ installedSize += $infoSize + $bomSize + $tiffSize + 3
2619682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
2629682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall# echo size parameters to sizes file
2639682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallecho NumFiles $numFiles             >  $pkgSizes
2649682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallecho InstalledSize $installedSize   >> $pkgSizes
2659682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallecho CompressedSize $compressedSize >> $pkgSizes
2669682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallecho done.
2679682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallecho " ... finished generating $pkg."
2689682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
2699682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallexit(0)
2709682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
2719682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall# end package
2729682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	
273