diff options
Diffstat (limited to '')
-rw-r--r-- | tools/gpgconf.c | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/tools/gpgconf.c b/tools/gpgconf.c index fdd77c461..6f1fcbb54 100644 --- a/tools/gpgconf.c +++ b/tools/gpgconf.c @@ -1,5 +1,5 @@ /* gpgconf.c - Configuration utility for GnuPG - * Copyright (C) 2003, 2007 Free Software Foundation, Inc. + * Copyright (C) 2003, 2007, 2009 Free Software Foundation, Inc. * * This file is part of GnuPG. * @@ -47,7 +47,8 @@ enum cmd_and_opt_values aApplyDefaults, aListConfig, aCheckConfig, - aListDirs + aListDirs, + aReload }; @@ -70,6 +71,7 @@ static ARGPARSE_OPTS opts[] = N_("list global configuration file") }, { aCheckConfig, "check-config", 256, N_("check global configuration file") }, + { aReload, "reload", 256, "@" }, { 301, NULL, 0, N_("@\nOptions:\n ") }, @@ -176,6 +178,7 @@ main (int argc, char **argv) case aApplyDefaults: case aListConfig: case aCheckConfig: + case aReload: cmd = pargs.r_opt; break; @@ -233,6 +236,31 @@ main (int argc, char **argv) } break; + case aReload: + if (!fname) + { + /* Reload all. */ + gc_component_reload (-1); + } + else + { + /* Reload given component. */ + int idx; + + idx = gc_component_find (fname); + if (idx < 0) + { + fputs (_("Component not found"), stderr); + putc ('\n', stderr); + exit (1); + } + else + { + gc_component_reload (idx); + } + } + break; + case aListConfig: if (gc_process_gpgconf_conf (fname, 0, 0, get_outfp (&outfp))) exit (1); |