[openwrt/openwrt] scripts: add -N option to mkhash for printing without newline

LEDE Commits lede-commits at lists.infradead.org
Tue Dec 22 13:13:26 EST 2020


ynezz pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/fdcdbdfdef512e0fdd719a704cff827a0633f5dc

commit fdcdbdfdef512e0fdd719a704cff827a0633f5dc
Author: INAGAKI Hiroshi <musashino.open at gmail.com>
AuthorDate: Thu Dec 17 23:44:28 2020 +0900

    scripts: add -N option to mkhash for printing without newline
    
    Added "-N" option, it allow printing hash(es) without newline.
    
    Signed-off-by: INAGAKI Hiroshi <musashino.open at gmail.com>
---
 scripts/mkhash.c | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/scripts/mkhash.c b/scripts/mkhash.c
index 3292433213..ed3d42d4c3 100644
--- a/scripts/mkhash.c
+++ b/scripts/mkhash.c
@@ -747,6 +747,7 @@ static int usage(const char *progname)
 	fprintf(stderr, "Usage: %s <hash type> [options] [<file>...]\n"
 		"Options:\n"
 		"	-n		Print filename(s)\n"
+		"	-N		Suppress trailing newline\n"
 		"\n"
 		"Supported hash types:", progname);
 
@@ -771,7 +772,8 @@ static struct hash_type *get_hash_type(const char *name)
 }
 
 
-static int hash_file(struct hash_type *t, const char *filename, bool add_filename)
+static int hash_file(struct hash_type *t, const char *filename, bool add_filename,
+	bool no_newline)
 {
 	const char *str;
 
@@ -801,9 +803,10 @@ static int hash_file(struct hash_type *t, const char *filename, bool add_filenam
 	}
 
 	if (add_filename)
-		printf("%s %s\n", str, filename ? filename : "-");
+		printf("%s %s%s", str, filename ? filename : "-",
+			no_newline ? "" : "\n");
 	else
-		printf("%s\n", str);
+		printf("%s%s", str, no_newline ? "" : "\n");
 	return 0;
 }
 
@@ -813,13 +816,16 @@ int main(int argc, char **argv)
 	struct hash_type *t;
 	const char *progname = argv[0];
 	int i, ch;
-	bool add_filename = false;
+	bool add_filename = false, no_newline = false;
 
-	while ((ch = getopt(argc, argv, "n")) != -1) {
+	while ((ch = getopt(argc, argv, "nN")) != -1) {
 		switch (ch) {
 		case 'n':
 			add_filename = true;
 			break;
+		case 'N':
+			no_newline = true;
+			break;
 		default:
 			return usage(progname);
 		}
@@ -836,10 +842,10 @@ int main(int argc, char **argv)
 		return usage(progname);
 
 	if (argc < 2)
-		return hash_file(t, NULL, add_filename);
+		return hash_file(t, NULL, add_filename, no_newline);
 
 	for (i = 0; i < argc - 1; i++) {
-		int ret = hash_file(t, argv[1 + i], add_filename);
+		int ret = hash_file(t, argv[1 + i], add_filename, no_newline);
 		if (ret)
 			return ret;
 	}



More information about the lede-commits mailing list