autocreate usage
This commit is contained in:
parent
c192b962e5
commit
65d07c4f96
17
dunst.c
17
dunst.c
@ -1469,7 +1469,7 @@ void load_options(char *cmdline_config_path)
|
||||
close_all_ks.str = option_get_string("shortcuts", "close_all", "-all_key", close_all_ks.str);
|
||||
history_ks.str = option_get_string("shortcuts", "history", "-history_key", history_ks.str);
|
||||
|
||||
print_notifications = cmdline_get_bool("print", False);
|
||||
print_notifications = cmdline_get_bool("-print", False);
|
||||
|
||||
char *cur_section = NULL;
|
||||
for (;;) {
|
||||
@ -1535,9 +1535,6 @@ int main(int argc, char *argv[])
|
||||
|
||||
cmdline_load(argc, argv);
|
||||
|
||||
if (cmdline_get_bool("-h/-help", False) || cmdline_get_bool("--help", False)) {
|
||||
usage(EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
if (cmdline_get_bool("-v/-version", False) || cmdline_get_bool("--version", False)) {
|
||||
print_version();
|
||||
@ -1550,6 +1547,11 @@ int main(int argc, char *argv[])
|
||||
cmdline_config_path = NULL;
|
||||
#endif
|
||||
load_options(cmdline_config_path);
|
||||
|
||||
if (cmdline_get_bool("-h/-help", False) || cmdline_get_bool("--help", False)) {
|
||||
usage(EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
dc = initdc();
|
||||
|
||||
init_shortcut(&close_ks);
|
||||
@ -1602,9 +1604,10 @@ int main(int argc, char *argv[])
|
||||
|
||||
void usage(int exit_status)
|
||||
{
|
||||
fputs
|
||||
("usage: dunst [-h/--help] [-v] [-geometry geom] [-lh height] [-fn font] [-format fmt]\n[-nb color] [-nf color] [-lb color] [-lf color] [-cb color] [ -cf color]\n[-to secs] [-lto secs] [-cto secs] [-nto secs] [-key key] [-history_key key] [-all_key key] [-mon n] [-follow none/mouse/keyboard] [-config dunstrc]\n",
|
||||
stderr);
|
||||
fputs("usage:\n", stderr);
|
||||
char *us = cmdline_create_usage();
|
||||
fputs(us, stderr);
|
||||
fputs("\n", stderr);
|
||||
exit(exit_status);
|
||||
}
|
||||
|
||||
|
37
options.c
37
options.c
@ -1,4 +1,6 @@
|
||||
/* copyright 2012 Sascha Kruse and contributors (see LICENSE for licensing information) */
|
||||
#define _GNU_SOURCE
|
||||
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
@ -35,6 +37,9 @@ static char *clean_value(char *value);
|
||||
static int cmdline_argc;
|
||||
static char **cmdline_argv;
|
||||
|
||||
static char *usage_str = NULL;
|
||||
static void cmdline_usage_append(char *key, char *type);
|
||||
|
||||
static int cmdline_find_option(char *key);
|
||||
|
||||
section_t *new_section(char *name)
|
||||
@ -304,6 +309,7 @@ int cmdline_find_option(char *key)
|
||||
|
||||
char *cmdline_get_string(char *key, char *def)
|
||||
{
|
||||
cmdline_usage_append(key, "string");
|
||||
int idx = cmdline_find_option(key);
|
||||
if (idx < 0) {
|
||||
return def;
|
||||
@ -320,6 +326,7 @@ char *cmdline_get_string(char *key, char *def)
|
||||
|
||||
int cmdline_get_int(char *key, int def)
|
||||
{
|
||||
cmdline_usage_append(key, "double");
|
||||
char *str = cmdline_get_string(key, NULL);
|
||||
if (str == NULL)
|
||||
return def;
|
||||
@ -329,6 +336,7 @@ int cmdline_get_int(char *key, int def)
|
||||
|
||||
double cmdline_get_double(char *key, double def)
|
||||
{
|
||||
cmdline_usage_append(key, "double");
|
||||
char *str = cmdline_get_string(key, NULL);
|
||||
if (str == NULL)
|
||||
return def;
|
||||
@ -338,6 +346,7 @@ double cmdline_get_double(char *key, double def)
|
||||
|
||||
int cmdline_get_bool(char *key, int def)
|
||||
{
|
||||
cmdline_usage_append(key, "");
|
||||
int idx = cmdline_find_option(key);
|
||||
if (idx > 0)
|
||||
return true;
|
||||
@ -413,4 +422,32 @@ int option_get_bool(char *ini_section, char *ini_key, char *cmdline_key, int def
|
||||
return ini_get_bool(ini_section, ini_key, def);
|
||||
}
|
||||
|
||||
void cmdline_usage_append(char *key, char *type)
|
||||
{
|
||||
static int add_linebreak = 2;
|
||||
|
||||
|
||||
if (!usage_str) {
|
||||
asprintf(&usage_str, "[%s %s]", key, type);
|
||||
return;
|
||||
}
|
||||
|
||||
char *tmp;
|
||||
add_linebreak--;
|
||||
if (add_linebreak == 0) {
|
||||
asprintf(&tmp, "%s[%s %s]\n", usage_str, key, type);
|
||||
add_linebreak = 3;
|
||||
} else {
|
||||
asprintf(&tmp, "%s[%s %s] ", usage_str, key, type);
|
||||
}
|
||||
|
||||
free(usage_str);
|
||||
usage_str = tmp;
|
||||
|
||||
}
|
||||
|
||||
char *cmdline_create_usage(void)
|
||||
{
|
||||
return strdup(usage_str);
|
||||
}
|
||||
/* vim: set ts=8 sw=8 tw=0: */
|
||||
|
@ -17,6 +17,7 @@ char *cmdline_get_string(char *key, char *def);
|
||||
int cmdline_get_int(char *key, int def);
|
||||
double cmdline_get_double(char *key, double def);
|
||||
int cmdline_get_bool(char *key, int def);
|
||||
char *cmdline_create_usage(void);
|
||||
|
||||
char *option_get_string(char *ini_section, char *ini_key, char *cmdline_key, char *def);
|
||||
int option_get_int(char *ini_section, char *ini_key, char *cmdline_key, int def);
|
||||
|
Loading…
x
Reference in New Issue
Block a user