]> pd.if.org Git - zpackage/commitdiff
add install option to merge files
authorNathan Wagner <nw@hydaspes.if.org>
Sun, 25 Nov 2018 05:38:37 +0000 (05:38 +0000)
committerNathan Wagner <nw@hydaspes.if.org>
Sun, 25 Nov 2018 05:38:37 +0000 (05:38 +0000)
zpm-install
zpm-syncfs.c

index 1fb470e4810d50c568b3b28a3534c22e9b87c48b..0cb0281b36cce820622adee08cc9dafcb8b9fe51 100755 (executable)
@@ -18,11 +18,13 @@ absorb=0
 overwrite=0
 syncopts=''
 installall=0
+mergefiles=0
 
 # zpm-install [-SCn] [ -d localdb ] [ -f pkgfile ] [ -R installroot ] pkgstr ...
-while getopts f:d:R:nSCvAOa opt; do
+while getopts f:d:R:nSCvAOaF opt; do
        case $opt in
                f) pkgfile="$OPTARG" ;;
+               F) mergefiles=1 ;;
                d) localdb="$OPTARG" ;;
                R) rootdir="$OPTARG" ;;
                S) runscripts=0 ;;
@@ -154,7 +156,11 @@ for pkgid in $pkglist; do
                if [ $verbose -gt 0 ]; then
                        echo merging $pkgid
                fi
-               zpm merge -u -F -f $pkgfile -s installing $pkgid
+               if [ $mergefiles -eq 1 ]; then
+                       zpm merge -u -F -f $pkgfile -s installing $pkgid
+               else
+                       zpm merge -u -f $pkgfile -s installing $pkgid
+               fi
                if [ $? -ne 0 ]; then
                        die "merging $pkgid failed"
                fi
@@ -174,6 +180,10 @@ if [ $verbose -gt 0 ]; then
        syncopts="$syncopts -v"
 fi
 
+if [ "$pkgfile" != "$ZPMDB" ]; then
+       syncopts="$syncopts -f $pkgfile"
+fi
+
 zpm syncfs $syncopts
 
 syncrv=$?
index 85c033e2789bc54d7bc0d5c9f0273378a6fcfff7..0b88928d456ae875bd940a8d1fdabdf65c0f30ec 100644 (file)
@@ -1302,6 +1302,7 @@ int main(int ac, char **av){
        conf.log = &localdb;
 
        if (pkgdbfile) {
+               /* TODO open read-only */
                if (!zpm_open(&pkgdb, pkgdbfile)) {
                        fprintf(stderr, "can't open src db %s\n", localdbfile);
                        exit(EXIT_FAILURE);