X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=zpm-install;fp=zpm-install;h=d0f2f32cf48bf64d8451753503641051e0f75ca2;hb=214fd7d30098cb9dad0fb2a7b522b262512d3892;hp=22192710afd1ccb589f959475f5ba27e30d84130;hpb=c8cf77a41735c303259775742e1980848a71f928;p=zpackage diff --git a/zpm-install b/zpm-install index 2219271..d0f2f32 100755 --- a/zpm-install +++ b/zpm-install @@ -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