summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2019-08-20 21:01:59 +0200
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2019-08-20 21:13:43 +0200
commita7d22b83cf70eb500f52edb625e9c719a35b0134 (patch)
treed24d2fbd1aceaac36add177ea2295ba1891a8d1f
parent3f515038371bde961c88bf62a9ba0a75667b95dd (diff)
Change CLI of sqfsdiff to specify images through long options
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
-rw-r--r--difftool/sqfsdiff.c23
-rw-r--r--doc/sqfsdiff.18
2 files changed, 22 insertions, 9 deletions
diff --git a/difftool/sqfsdiff.c b/difftool/sqfsdiff.c
index 4754557..baebc25 100644
--- a/difftool/sqfsdiff.c
+++ b/difftool/sqfsdiff.c
@@ -7,6 +7,8 @@
#include "difftool.h"
static struct option long_opts[] = {
+ { "old", required_argument, NULL, 'a' },
+ { "new", required_argument, NULL, 'b' },
{ "no-owner", no_argument, NULL, 'O' },
{ "no-permissions", no_argument, NULL, 'P' },
{ "no-contents", no_argument, NULL, 'C' },
@@ -18,10 +20,10 @@ static struct option long_opts[] = {
{ "version", no_argument, NULL, 'V' },
};
-static const char *short_opts = "OPCTISe:hV";
+static const char *short_opts = "a:b:OPCTISe:hV";
static const char *usagestr =
-"Usage: sqfsdiff [OPTIONS...] <first> <second>\n"
+"Usage: sqfsdiff [OPTIONS...] --old,-a <first> --new,-b <second>\n"
"\n"
"Compare two squashfs images. In contrast to doing a direct diff of the\n"
"images, this actually parses the filesystems and generates a more\n"
@@ -38,6 +40,9 @@ static const char *usagestr =
"\n"
"Possible options:\n"
"\n"
+" --old, -a <first> The first of the two images to compare.\n"
+" --new, -b <second> The second of the two images to compare.\n"
+"\n"
" --no-contents, -C Do not compare file contents.\n"
" --no-owner, -O Do not compare file owners.\n"
" --no-permissions, -P Do not compare permission bits.\n"
@@ -73,6 +78,12 @@ static void process_options(int argc, char **argv)
break;
switch (i) {
+ case 'a':
+ first_path = optarg;
+ break;
+ case 'b':
+ second_path = optarg;
+ break;
case 'O':
compare_flags |= COMPARE_NO_OWNER;
break;
@@ -106,20 +117,16 @@ static void process_options(int argc, char **argv)
}
}
- if (optind >= argc) {
+ if (first_path == NULL) {
fputs("Missing arguments: first filesystem\n", stderr);
goto fail_arg;
}
- first_path = argv[optind++];
-
- if (optind >= argc) {
+ if (second_path == NULL) {
fputs("Missing arguments: second filesystem\n", stderr);
goto fail_arg;
}
- second_path = argv[optind++];
-
if (optind < argc) {
fputs("Unknown extra arguments\n", stderr);
goto fail_arg;
diff --git a/doc/sqfsdiff.1 b/doc/sqfsdiff.1
index 5222c19..c81f05c 100644
--- a/doc/sqfsdiff.1
+++ b/doc/sqfsdiff.1
@@ -3,7 +3,7 @@
sqfsdiff \- compare two squashfs images by contents and metadata
.SH SYNOPSIS
.B sqfsdiff
-[\fI\,OPTIONS\/\fR...] \fI\,<first> <second>\/\fR
+[\fI\,OPTIONS\/\fR...] \-\-old \fI\,<first>\fR \-\-new \fI\,<second>\/\fR
.SH DESCRIPTION
Compare two squashfs images. In contrast to doing a direct diff of the
images, this actually parses the filesystems and generates a more
@@ -20,6 +20,12 @@ that of diff(1): 0 means equal, 1 means different, 2 means problem.
.PP
Possible options:
.TP
+\fB\-\-old\fR, \fB\-a\fR <first>
+Specify the first image, relativ to which the changes are evaluated.
+.TP
+\fB\-\-new\fR, \fB\-b\fR <second>
+Specift the second image to compare to the first one.
+.TP
\fB\-\-no\-contents\fR, \fB\-C\fR
Do not compare file contents.
.TP