add -D to define macros from the cmd line

This commit is contained in:
Omar Polo 2021-06-29 12:39:34 +00:00
parent 3b21cca385
commit f98e9045ae
2 changed files with 9 additions and 2 deletions

View File

@ -1,5 +1,7 @@
2021-06-29 Omar Polo <op@omarpolo.com>
* gmid.c (main): add -D to define macros from the cmd line
* parse.y (yylex): allow to define macros in the config file
* gmid.c (main): use getopt_long, add --help as synonym of -h and -V/--version

9
gmid.c
View File

@ -27,7 +27,7 @@
#include <signal.h>
#include <string.h>
static const char *opts = "6c:d:fH:hnP:p:Vvx:";
static const char *opts = "6c:D:d:fH:hnP:p:Vvx:";
static struct option longopts[] = {
{"help", no_argument, NULL, 'h'},
@ -382,7 +382,7 @@ usage(void)
{
fprintf(stderr,
"Version: " GMID_STRING "\n"
"Usage: %s [-fnv] [-c config] [-P pidfile]\n"
"Usage: %s [-fnv] [-c config] [-D macro=value] [-P pidfile]\n"
" %s [-6hVv] [-d certs-dir] [-H hostname] [-p port] [-x cgi] [dir]\n",
getprogname(),
getprogname());
@ -548,6 +548,11 @@ main(int argc, char **argv)
config_path = absolutify_path(optarg);
break;
case 'D':
if (cmdline_symset(optarg) == -1)
errx(1, "invalid macro: %s", optarg);
break;
case 'd':
certs_dir = optarg;
configless = 1;