You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
2.2 KiB
94 lines
2.2 KiB
#!/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
|
|
|