| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- #!/bin/sh
- ##
- ## Shell-based package for OpenPKG source bootstrap procedure
- ## Copyright (c) 2000-2002 Cable & Wireless Deutschland GmbH
- ## Copyright (c) 2000-2002 The OpenPKG Project <http://www.openpkg.org/>
- ## Copyright (c) 2000-2002 Ralf S. Engelschall <rse@engelschall.com>
- ##
- # defaults
- f="$0"
- h=0
- v=''
- p=''
- u=''
- g=''
- d='@DIR@'
- t='@TGZ@'
- # parse command line options
- for opt
- do
- case $opt in
- -*=*) arg=`echo "$opt" | sed 's/^[-_a-zA-Z0-9]*=//'` ;;
- *) arg='' ;;
- esac
- case $opt in
- -h | --help ) h=1 ;;
- -v | --verbose ) v=v ;;
- --prefix=* ) p=$arg ;;
- --user=* ) u=$arg ;;
- --group=* ) g=$arg ;;
- * ) h=1 ;;
- esac
- done
- if [ ".$p" = . ]; then
- h=1
- fi
- if [ ".$h" = .1 ]; then
- echo "Usage: sh $0 [-h|--help] [-v|--verbose] --prefix=<prefix> [--user=<user>] [--group=<group>]" 2>&1
- exit 1
- fi
- # establish standard environment
- LC_CTYPE=C
- export LC_CTYPE
- umask 022
- # determine current user and group
- thisuser=`(id -un) 2>/dev/null ||\
- (id | sed -e 's;^[^(]*(\([^)]*\)).*;\1;') 2>/dev/null ||\
- (whoami) 2>/dev/null ||\
- (who am i | cut "-d " -f1) 2>/dev/null ||\
- echo $LOGNAME`
- thisgroup=`(cat /etc/passwd; ypcat passwd) 2>/dev/null |\
- grep "^${thisuser}:" | awk -F: '{ print $4; }'`
- thisgroup=`(cat /etc/group; ypcat group) 2>/dev/null |\
- grep ":${thisgroup}:" | awk -F: '{ print $1; }'`
- if [ ".$thisgroup" = . ]; then
- thisgroup="$thisuser"
- fi
- # perform the extraction
- echo "$0: extracting to $d..."
- uudecode $f
- rm -rf $d >/dev/null 2>&1
- mkdir $d || exit 1
- uncompress <$t |\
- (cd $d; tar x${v}f - 2>/dev/null)
- if [ ".$thisuser" = .root ]; then
- ( cd $d
- chown -R -h $thisuser . >/dev/null 2>&1 || true
- chgrp -R -h $thisgroup . >/dev/null 2>&1 || true
- )
- fi
- echo "$0: extraction done."
- # perform building
- echo "$0: building for $p..."
- cd $d || exit 1
- ./openpkg.boot $p $u $g || exit 1
- echo "$0: build done."
- # cleanup
- echo "$0: cleaning up..."
- cd ..
- rm -rf $d >/dev/null 2>&1
- rm -f $t >/dev/null 2>&1
- echo "$0: cleaned up."
- # die explicitly just before the shell would discover
- # that we carry mega-bytes of data with us...
- exit 0
- # the distribution tarball
|