overwrite=0
syncopts=''
installall=0
+mergefiles=0
# zpm-install [-SCn] [ -d localdb ] [ -f pkgfile ] [ -R installroot ] pkgstr ...
-while getopts f:d:R:nSCvAOa opt; do
+while getopts f:d:R:nSCvAOaF opt; do
case $opt in
f) pkgfile="$OPTARG" ;;
+ F) mergefiles=1 ;;
d) localdb="$OPTARG" ;;
R) rootdir="$OPTARG" ;;
S) runscripts=0 ;;
if [ $? -ne 0 ]; then
die "pre-install script for $pkgid failed"
fi
+ else
+ if zpm script -f $pkgfile -Fql -p pre-install $pkgid; then
+ zpm note -p $pkgid -m 'pre-install script not run'
+ fi
fi
# remove the package if it exists. can't be in an installed
if [ $verbose -gt 0 ]; then
echo merging $pkgid
fi
- zpm merge -u -F -f $pkgfile -s installing $pkgid
+ if [ $mergefiles -eq 1 ]; then
+ zpm merge -u -F -f $pkgfile -s installing $pkgid
+ else
+ zpm merge -u -f $pkgfile -s installing $pkgid
+ fi
if [ $? -ne 0 ]; then
die "merging $pkgid failed"
fi
syncopts="$syncopts -v"
fi
+if [ "$pkgfile" != "$ZPMDB" ]; then
+ syncopts="$syncopts -f $pkgfile"
+fi
+
zpm syncfs $syncopts
syncrv=$?
if [ $runscripts -gt 0 ]; then
zpm script -f $pkgfile -p post-install $pkgid $current
+ else
+ if zpm script -f $pkgfile -Fql -p post-install $pkgid; then
+ zpm note -p $pkgid -m 'post-install script not run'
+ fi
fi
if [ -n "$current" ]; then
# TODO will need force option
if [ $runconfigure -gt 0 ]; then
zpm script -f $pkgfile -p configure $pkgid
+ else
+ if zpm script -f $pkgfile -Fql -p configure $pkgid; then
+ zpm note -p $pkgid -m 'configure script not run'
+ fi
fi
+
done