Rework arg parsing again - 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 705d45cf7f4bf7006081d44dc0a6439ec90dcede DIR parent ffc510064c8ef611cd41786404991115ded87cb1 HTML Author: sin <sin@2f30.org> Date: Wed, 21 Mar 2018 17:25:19 +0000 Rework arg parsing again Diffstat: M dedup.c | 32 ++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) --- DIR diff --git a/dedup.c b/dedup.c @@ -552,8 +552,24 @@ main(int argc, char *argv[]) usage(); } ARGEND - if (argc > 1) + if (argc > 1) { usage(); + } else if (argc == 1) { + if (id) { + fd = open(argv[0], O_RDWR | O_CREAT, 0600); + if (fd == -1) + err(1, "open %s", argv[0]); + } else { + fd = open(argv[0], O_RDONLY); + if (fd == -1) + err(1, "open %s", argv[0]); + } + } else { + if (id) + fd = STDOUT_FILENO; + else + fd = STDIN_FILENO; + } if (root != NULL) { mkdir(root, 0700); @@ -575,22 +591,8 @@ main(int argc, char *argv[]) } if (id) { - if (argc == 1) { - fd = open(argv[0], O_RDWR | O_CREAT, 0600); - if (fd == -1) - err(1, "open %s", argv[0]); - } else { - fd = STDOUT_FILENO; - } extract(id, fd); } else { - if (argc == 1) { - fd = open(argv[0], O_RDONLY); - if (fd == -1) - err(1, "open %s", argv[0]); - } else { - fd = STDIN_FILENO; - } dedup(fd); }