]> pd.if.org Git - zpackage/blobdiff - zpm-install
add rmpackage
[zpackage] / zpm-install
index 22192710afd1ccb589f959475f5ba27e30d84130..d0f2f32cf48bf64d8451753503641051e0f75ca2 100755 (executable)
@@ -156,6 +156,8 @@ for pkgstr in "$@"; do
        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
@@ -163,8 +165,16 @@ for pkgstr in "$@"; do
                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