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