verbose=0
runscripts=1
runconfigure=1
+absorb=0
+overwrite=0
+syncopts=''
# zpm-install [-SCn] [ -d localdb ] [ -f pkgfile ] [ -R installroot ] pkgstr ...
-while getopts f:d:R:nSCv opt; do
+while getopts f:d:R:nSCvAO opt; do
case $opt in
f) pkgfile="$OPTARG" ;;
d) localdb="$OPTARG" ;;
R) rootdir="$OPTARG" ;;
S) runscripts=0 ;;
C) runconfigure=0 ;;
+ A) absorb=1; syncopts="${syncopts} -A" ;;
+ O) overwrite=1; syncopts="${syncopts} -O" ;;
n) dryrun=1 ;;
v) verbose=1 ;;
*) die "usage ..." ;;
pkgver=$(zpm quote "$version")
pkgrel=$(zpm quote "$release")
-if [ -z "$localdb" ]; then
+if [ -z "$rootdir" ]; then
: rootdir=${rootdir%%/}
- localdb=${rootdir:-/}/var/lib/zpm/local.db
+fi
+
+if [ -z "$localdb" ]; then
+ localdb=${rootdir}/var/lib/zpm/local.db
fi
if [ ! -f "$localdb" ]; then
+ for d in /var /var/lib /var/lib/zpm; do
+ test -d $rootdir/$d || mkdir $rootdir/$d || die "can't create $rootdir/$d/: $!"
+ done
zpm init "$localdb"
if [ $? -ne 0 ]; then
die "aborting install"
if [ $dryrun -gt 0 ]; then
#zpm list -v
#zpm shell $ZPMDB 'select * from install_status'
- zpm syncfs -nv -f $pkgfile
+ zpm syncfs $syncopts -nv -f $pkgfile
zpm pkg $pkgid status=dryrun
continue
fi
if [ $verbose -gt 0 ]; then
- zpm syncfs -v -f $pkgfile
- else
- zpm syncfs -f $pkgfile
+ syncopts="${syncopts} -v"
fi
+ zpm syncfs $syncopts -f $pkgfile
+
if [ $? -ne 0 ]; then
die 'zpm-syncfs failed';
fi