current=$(zpm list -s installed "$package")
if [ $runscripts -gt 0 ]; then
+ # TODO run pre-upgrade script if needed
+ # zpm runscript -p pre-upgrade $current $pkgid
zpm runscript -f $pkgfile -p pre-install $pkgid $current
if [ $? -ne 0 ]; then
# TODO log
fi
fi
+ # remove the package if it exists. can't be in an installed
+ # state, would have bailed above. So, if it exists, can only
+ # be 'upgraded'. This should be fast, because we won't run
+ # a garbage collect, so any possible duplicate files between
+ # an upgraded or removed files, if they're there, won't need
+ # to be merged.
+
# only merge if localdb and pkgfile are different
if [ "$pkgfile" != "$ZPMDB" ]; then
+ zpm rmpackage $pkgid
zpm merge -f $pkgfile -s installing $pkgid
if [ $? -ne 0 ]; then
# TODO log