]> pd.if.org Git - zpackage/blobdiff - zpm-install
let newpackage set additional fields
[zpackage] / zpm-install
index 0cb0281b36cce820622adee08cc9dafcb8b9fe51..0a7cf3ed2a8335fe2d2ebede5c095ad264255fca 100755 (executable)
@@ -10,6 +10,12 @@ die() {
        exit 1
 }
 
+changeall() {
+       for pkgid in $(zpm list -s $1); do
+               zpm pkg $pkgid status=$2
+       done
+}
+
 dryrun=0
 verbose=0
 runscripts=1
@@ -139,7 +145,7 @@ for pkgid in $pkglist; do
                fi
        else
                if zpm script -f $pkgfile -Fql -p pre-install $pkgid; then
-                       zpm note -p $pkgid -m 'pre-install script not run'
+                       zpm note -e -p $pkgid -m 'pre-install script not run'
                fi
        fi
 
@@ -167,6 +173,8 @@ for pkgid in $pkglist; do
        else
                zpm pkg $pkgid status=installing
        fi
+
+       zpm shell "$ZPMDB" "update packages set status='updating' where status='installed' and package in (select package from packages where status = 'installing')"
 done
 
 # do the sync
@@ -184,13 +192,17 @@ if [ "$pkgfile" != "$ZPMDB" ]; then
        syncopts="$syncopts -f $pkgfile"
 fi
 
+#zpm shell $ZPMDB 'select * from syncinfo'
+#zpm list -v
 zpm syncfs $syncopts
 
 syncrv=$?
 
-for pkgid in $pkglist; do
-       zpm pkg $pkgid status=dryrun
-done
+if [ $dryrun -gt 0 ]; then
+       for pkgid in $pkglist; do
+               zpm pkg $pkgid status=dryrun
+       done
+fi
 
 if [ $syncrv -ne 0 ]; then
        zpm pkg $pkgid status=failed
@@ -211,13 +223,13 @@ fi
 
 for pkgid in $pkglist; do
        package=$(zpm parse -n $pkgid)
-       current=$(zpm list -s installed "$package")
+       current=$(zpm list -s updating "$package")
        
        if [ $runscripts -gt 0 ]; then
-               zpm script -f $pkgfile -p post-install $pkgid $current
+               zpm script -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'
+               if zpm script -Fql -p post-install $pkgid; then
+                       zpm note -e -p $pkgid -m 'post-install script not run'
                fi
        fi
 
@@ -230,11 +242,13 @@ for pkgid in $pkglist; do
        # TODO skip configure if not on a terminal, regardless of settings
        # TODO will need force option
        if [ $runconfigure -gt 0 ]; then
-               zpm script -f $pkgfile -p configure $pkgid
+               zpm script -p configure $pkgid
        else
-               if zpm script -f $pkgfile -Fql -p configure $pkgid; then
-                       zpm note -p $pkgid -m 'configure script not run'
+               if zpm script -Fql -p configure $pkgid; then
+                       zpm note -e -p $pkgid -m 'configure script not run'
                fi
        fi
 
 done
+
+changeall updating updated