URI: 
       Parse input/output file from command line as well - dedup - deduplicating backup program
  HTML git clone git://bitreich.org/dedup/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/dedup/
   DIR Log
   DIR Files
   DIR Refs
   DIR Tags
   DIR README
   DIR LICENSE
       ---
   DIR commit 9ff8b1f2c9ac45e6b1f3184278a1faa1c0362e9f
   DIR parent bf294b1ffe58f2412d592f2e099b73ce0c7daa83
  HTML Author: sin <sin@2f30.org>
       Date:   Wed, 21 Mar 2018 14:04:43 +0000
       
       Parse input/output file from command line as well
       
       Diffstat:
         M dedup.c                             |      19 ++++++++++++++-----
       
       1 file changed, 14 insertions(+), 5 deletions(-)
       ---
   DIR diff --git a/dedup.c b/dedup.c
       @@ -343,7 +343,7 @@ extract(char *id, int fd)
                                        if (ent->blks[j] > nblks)
                                                errx(1, "index is corrupted");
                                        read_blk(&blk, ent->blks[j]);
       -                                xwrite(1, blk.data, blk.sz);
       +                                xwrite(fd, blk.data, blk.sz);
                                }
                                break;
                        }
       @@ -494,7 +494,7 @@ list(void)
        void
        usage(void)
        {
       -        fprintf(stderr, "usage: %s [-clv] [-e id]\n", argv0);
       +        fprintf(stderr, "usage: %s [-clv] [-e id] [file]\n", argv0);
                exit(1);
        }
        
       @@ -502,7 +502,7 @@ int
        main(int argc, char *argv[])
        {
                char *id = NULL;
       -        int lflag = 0, cflag = 0;
       +        int fd = -1, lflag = 0, cflag = 0;
        
                ARGBEGIN {
                case 'c':
       @@ -521,6 +521,9 @@ main(int argc, char *argv[])
                        usage();
                } ARGEND
        
       +        if (argc > 1)
       +                usage();
       +
                init();
        
                if (cflag) {
       @@ -533,10 +536,16 @@ main(int argc, char *argv[])
                        return 0;
                }
        
       +        if (argc == 1) {
       +                fd = open(argv[0], O_RDWR | O_CREAT, 0600);
       +                if (fd == -1)
       +                        err(1, "open %s", argv[0]);
       +        }
       +
                if (id)
       -                extract(id, 0);
       +                extract(id, fd == -1 ? 0 : fd);
                else
       -                dedup(0);
       +                dedup(fd == -1 ? 0 : fd);
        
                term();
        }