Blame SOURCES/0033-efivar-rework-usage.patch

4e0e09
From 5f0b2b3460dfa826d75b95450bdc2903fa59e32e Mon Sep 17 00:00:00 2001
4e0e09
From: Peter Jones <pjones@redhat.com>
4e0e09
Date: Mon, 17 Jun 2019 14:45:39 -0400
4e0e09
Subject: [PATCH 33/63] efivar: rework usage()
4e0e09
4e0e09
Signed-off-by: Peter Jones <pjones@redhat.com>
4e0e09
---
4e0e09
 src/efivar.c | 74 ++++++++++++++++++++++++++++------------------------
4e0e09
 1 file changed, 40 insertions(+), 34 deletions(-)
4e0e09
4e0e09
diff --git a/src/efivar.c b/src/efivar.c
4e0e09
index df075809db5..7f16ab15bab 100644
4e0e09
--- a/src/efivar.c
4e0e09
+++ b/src/efivar.c
4e0e09
@@ -39,10 +39,11 @@ extern int optind, opterr, optopt;
4e0e09
 
4e0e09
 #include "efivar.h"
4e0e09
 
4e0e09
-#define ACTION_LIST		0x1
4e0e09
-#define ACTION_PRINT		0x2
4e0e09
-#define ACTION_APPEND		0x4
4e0e09
-#define ACTION_LIST_GUIDS	0x8
4e0e09
+#define ACTION_USAGE		0x00
4e0e09
+#define ACTION_LIST		0x01
4e0e09
+#define ACTION_PRINT		0x02
4e0e09
+#define ACTION_APPEND		0x04
4e0e09
+#define ACTION_LIST_GUIDS	0x08
4e0e09
 #define ACTION_WRITE		0x10
4e0e09
 #define ACTION_PRINT_DEC	0x20
4e0e09
 
4e0e09
@@ -326,7 +327,7 @@ validate_name(const char *name)
4e0e09
 }
4e0e09
 
4e0e09
 static void
4e0e09
-prepare_data(const char *filename, void **data, size_t *data_size)
4e0e09
+prepare_data(const char *filename, uint8_t **data, size_t *data_size)
4e0e09
 {
4e0e09
 	int fd = -1;
4e0e09
 	void *buf;
4e0e09
@@ -365,25 +366,29 @@ err:
4e0e09
 	exit(1);
4e0e09
 }
4e0e09
 
4e0e09
-static void
4e0e09
-usage(const char *progname)
4e0e09
+static void __attribute__((__noreturn__))
4e0e09
+usage(int ret)
4e0e09
 {
4e0e09
-	printf("Usage: %s [OPTION...]\n", basename(progname));
4e0e09
-	printf("  -l, --list                        list current variables\n");
4e0e09
-	printf("  -p, --print                       print variable specified by --name\n");
4e0e09
-	printf("  -d, --print-decimal               print variable in decimal values specified\n");
4e0e09
-	printf("                                    by --name\n");
4e0e09
-	printf("  -n, --name=<guid-name>            variable to manipulate, in the form\n");
4e0e09
-	printf("                                    8be4df61-93ca-11d2-aa0d-00e098032b8c-Boot0000\n");
4e0e09
-	printf("  -a, --append                      append to variable specified by --name\n");
4e0e09
-	printf("  -f, --fromfile=<file>             use data from <file>\n");
4e0e09
-	printf("  -t, --attributes=<attributes>     attributes to use on append\n");
4e0e09
-	printf("  -L, --list-guids                  show internal guid list\n");
4e0e09
-	printf("  -w, --write                       write to variable specified by --name\n\n");
4e0e09
-	printf("Help options:\n");
4e0e09
-	printf("  -?, --help                        Show this help message\n");
4e0e09
-	printf("      --usage                       Display brief usage message\n");
4e0e09
-	return;
4e0e09
+	FILE *out = ret == 0 ? stdout : stderr;
4e0e09
+	fprintf(out,
4e0e09
+		"Usage: %s [OPTION...]\n"
4e0e09
+		"  -l, --list                        list current variables\n"
4e0e09
+		"  -p, --print                       print variable specified by --name\n"
4e0e09
+		"  -d, --print-decimal               print variable in decimal values specified\n"
4e0e09
+		"                                    by --name\n"
4e0e09
+		"  -n, --name=<guid-name>            variable to manipulate, in the form\n"
4e0e09
+		"                                    8be4df61-93ca-11d2-aa0d-00e098032b8c-Boot0000\n"
4e0e09
+		"  -a, --append                      append to variable specified by --name\n"
4e0e09
+		"  -e, --export=<file>               export variable to <file>\n"
4e0e09
+		"  -f, --fromfile=<file>             use data from <file>\n"
4e0e09
+		"  -t, --attributes=<attributes>     attributes to use on append\n"
4e0e09
+		"  -L, --list-guids                  show internal guid list\n"
4e0e09
+		"  -w, --write                       write to variable specified by --name\n\n"
4e0e09
+		"Help options:\n"
4e0e09
+		"  -?, --help                        Show this help message\n"
4e0e09
+		"      --usage                       Display brief usage message\n",
4e0e09
+		program_invocation_short_name);
4e0e09
+	exit(ret);
4e0e09
 }
4e0e09
 
4e0e09
 int main(int argc, char *argv[])
4e0e09
@@ -391,7 +396,7 @@ int main(int argc, char *argv[])
4e0e09
 	int c = 0;
4e0e09
 	int i = 0;
4e0e09
 	int action = 0;
4e0e09
-	void *data = NULL;
4e0e09
+	uint8_t *data = NULL;
4e0e09
 	size_t data_size = 0;
4e0e09
 	char *name = NULL;
4e0e09
 	char *file = NULL;
4e0e09
@@ -434,10 +439,10 @@ int main(int argc, char *argv[])
4e0e09
 				break;
4e0e09
 			case 't':
4e0e09
 				attributes = strtoul(optarg, NULL, 10);
4e0e09
-				if (errno == ERANGE || errno == EINVAL) {
4e0e09
-					fprintf(stderr, "invalid argument for -t: %s: %s\n", optarg, strerror(errno));
4e0e09
-					return EXIT_FAILURE;
4e0e09
-				}
4e0e09
+				if (errno == ERANGE || errno == EINVAL)
4e0e09
+					err(1,
4e0e09
+					    "invalid argument for -t: %s: %m\n",
4e0e09
+					    optarg);
4e0e09
 				break;
4e0e09
 			case 'L':
4e0e09
 				action |= ACTION_LIST_GUIDS;
4e0e09
@@ -446,13 +451,11 @@ int main(int argc, char *argv[])
4e0e09
 				action |= ACTION_WRITE;
4e0e09
 				break;
4e0e09
 			case '?':
4e0e09
-				usage(argv[0]);
4e0e09
-				return EXIT_SUCCESS;
4e0e09
+				usage(EXIT_SUCCESS);
4e0e09
+				break;
4e0e09
 			case 0:
4e0e09
-				if (strcmp(lopts[i].name, "usage")) {
4e0e09
-					usage(argv[0]);
4e0e09
-					return EXIT_SUCCESS;
4e0e09
-				}
4e0e09
+				if (strcmp(lopts[i].name, "usage"))
4e0e09
+					usage(EXIT_SUCCESS);
4e0e09
 				break;
4e0e09
 		}
4e0e09
 	}
4e0e09
@@ -506,6 +509,9 @@ int main(int argc, char *argv[])
4e0e09
 					guid[i].symbol + strlen("efi_guid_"),
4e0e09
 					guid[i].symbol, guid[i].name);
4e0e09
 			}
4e0e09
+		case ACTION_USAGE:
4e0e09
+		default:
4e0e09
+			usage(EXIT_FAILURE);
4e0e09
 		}
4e0e09
 	};
4e0e09
 
4e0e09
-- 
4e0e09
2.26.2
4e0e09