]> pd.if.org Git - zpackage/commitdiff
add option to zpm-add to complete package
authorNathan Wagner <nw@hydaspes.if.org>
Sat, 13 Oct 2018 02:29:09 +0000 (02:29 +0000)
committerNathan Wagner <nw@hydaspes.if.org>
Sat, 3 Nov 2018 12:39:52 +0000 (12:39 +0000)
t/add.t
zpm-add
zpm-pkg

diff --git a/t/add.t b/t/add.t
index 2fd9bb59f1909dd64b119343e20b03f093f30a2e..bcfce8502e241c7a8c5566cffbea24e5a3734764 100755 (executable)
--- a/t/add.t
+++ b/t/add.t
@@ -7,7 +7,7 @@
 
 PF=test.db
 
-plan 22
+plan 32
 
 require rm -rf tmp
 require mkdir tmp
@@ -17,6 +17,7 @@ echo foo > foo
 okexit 'making foo'
 
 pkgid=zpmtest-1.0-1
+PF=zpmtest-1.0-1.zpm
 
 require zpm newpackage -C $pkgid
 require zpm add $pkgid foo
@@ -33,8 +34,6 @@ okstreq "$3" "1" package release
 okstreq "$4" "foo" file foo in package
 diag "$pkglist"
 
-rm -f zpmtest-1.0-1.zpm
-
 rm -f $PF
 require zpm newpackage -f $PF -C $pkgid
 require zpm add -f $PF zpmtest foo
@@ -60,6 +59,31 @@ fn=$(zpm showpkg $PF | awk '{print $4}')
 okstreq "$fn" "foo" file foo in package prefix striped
 rm -f $PF
 
+require zpm newpackage -f $PF -C $pkgid
+require zpm add -f $PF zpmtest foo
+ph=$(zpm pkg -f $PF zpmtest hash)
+okstreq "$ph" "" package hash empty
+mtime=$(zpm pkg -f $PF zpmtest build_time)
+okstreq "$ph" "" package mtime empty
+
+zpm add -C -f $PF zpmtest subdir/foo
+okexit added file and completed package
+ph=$(zpm pkg -f $PF zpmtest hash)
+test -n "$ph"
+okexit package hash not empty
+diag "hash: $ph"
+mtime=$(zpm pkg -f $PF zpmtest build_time)
+test -n "$mtime"
+okexit package mtime not empty
+
+touch subdir/bar
+require zpm add -f $PF zpmtest subdir/bar
+ph=$(zpm pkg -f $PF zpmtest hash)
+okstreq "$ph" "" package hash cleared
+mtime=$(zpm pkg -f $PF zpmtest build_time)
+okstreq "$ph" "" package mtime cleared
+
+
 finish
 
 cd ..
diff --git a/zpm-add b/zpm-add
index 91c7b189610834679c3af386b7449d9a3a696e4d..6c753cf900ca8abadc2803a512d7e2c864500d28 100755 (executable)
--- a/zpm-add
+++ b/zpm-add
@@ -33,11 +33,12 @@ verbose=0
 tags=
 isconfig=0
 addcontent=1
+complete=0
 # option for "multipackage" just to let the system know that's what you meant
 # option to take filenames from stdin
 # parse package, version, release from file if not given
 # TODO -l follow symlinks, -L follow symlinks, adding all, links and targets
-while getopts :f:vr:l:P:S:cu:g:N opt; do
+while getopts :f:vr:l:P:S:cu:g:NC opt; do
        case $opt in
                N) addcontent=0 ;;
                f) pkgfile="$OPTARG" ;;
@@ -48,6 +49,7 @@ while getopts :f:vr:l:P:S:cu:g:N opt; do
                u) username="$OPTARG" ;;
                g) groupname="$OPTARG" ;;
                v) verbose=1 ;;
+               C) complete=1 ;;
                *) echo 'unknown option' $OPTARG; exit 1 ;;
        esac
 done
@@ -187,3 +189,10 @@ if [ $verbose -gt 0 ]; then
 fi
 
 done
+
+if [ $complete -eq 1 ]; then
+       zpm pkg -f $pkgfile $pkgid build_time=$(date +'%s')
+       zpm packagehash -f $pkgfile -s -q $pkgid
+else
+       zpm pkg -f $pkgfile $pkgid hash=
+fi
diff --git a/zpm-pkg b/zpm-pkg
index 7a0fc77c6759d72f4b372d3e9ce3f746065eef69..a2ac9b9065d49c237de0e34b4a4f4c3acd29b195 100755 (executable)
--- a/zpm-pkg
+++ b/zpm-pkg
@@ -5,7 +5,6 @@
 #zpm pkg -s packager=foo zpm
 
 # zpm pkg -f <pkgfile> zpm packager=xyz
-# zpm pkg zpm packager zyz
 # zpm pkg zpm packager
 
 warn() {