]> pd.if.org Git - zpackage/blobdiff - zpm-install
get install upgrades working
[zpackage] / zpm-install
index 1886cf1760076da90b54002989cacb78432ba2b2..40e5a4353bcba237d7e805c2dcd95a899b016a2a 100755 (executable)
@@ -154,9 +154,10 @@ pkgname() {
 # paths to replace
 
 newfiles() {
-       #zpm merge $pkgfile $newver
-
-       # add...
+       nv=$1
+       ov=$2
+#      printf "zzz checking %s vs %s\n" "$1" "$2"
+#      printf "zzz checking %s vs %s\n" "$nv" "$ov"
        zpm shell $ZPMDB<<-EOS
        select NV.path
        from packagefiles NV
@@ -172,8 +173,6 @@ newfiles() {
 }
 
 removedfiles() {
-       #zpm merge $pkgfile $newver
-
        zpm shell $ZPMDB<<-EOS
        select OV.path
        from packagefiles OV
@@ -213,14 +212,25 @@ do_upgrade() {
        zpm merge $pkgfile $newver
        zpm pkg $newver status installing
 
-       echo newfiles
-       newfiles $newver $oldver | xargs zpm ipkgfile ${user+-u $user} ${group+-g $group} -R "$pkgroot" -f $pkgfile -- $nver
+       newct=$(newfiles "$newver" "$oldver" | wc -l)
+       echo newfiles $newct
 
-       echo changed
-       changedfiles $newver $oldver | xargs zpm ipkgfile ${user+-u $user} ${group+-g $group} -R "$pkgroot" -f $pkgfile -- $pkg
+       if [ $newct -gt 0 ]; then
+       newfiles $newver $oldver
+       { newfiles "$newver" "$oldver"; } | xargs zpm ipkgfile ${user+-u $user} ${group+-g $group} -R "$pkgroot" -f $pkgfile -- $nver
+       fi
 
-       echo removed
-       removedfiles $newver $oldver | xargs rm
+       ct=$(changedfiles $newver $oldver | wc -l)
+       echo changed $ct
+       if [ $ct -gt 0 ]; then
+               changedfiles $newver $oldver | xargs zpm ipkgfile ${user+-u $user} ${group+-g $group} -R "$pkgroot" -f $pkgfile -- $pkg
+       fi
+
+       ct=$(removedfiles $newver $oldver | wc -l)
+       echo removed $ct
+       if [ $ct -gt 0 ]; then
+               removedfiles $newver $oldver | xargs rm
+       fi
 
        zpm pkg $newver status installed
        zpm pkg $oldver status upgraded