mirror of
git://git.gnupg.org/gnupg.git
synced 2024-11-11 21:48:50 +01:00
gpgconf: Ignore non-installed components with --apply-profile.
* tools/gpgconf-comp.c (retrieve_options_from_program): Add arg only_installed. (gc_component_retrieve_options): Use this if we want to process all components. -- Note that this also also ignores them in --with-defaults. This is useful for systems which come without scdaemon. GnuPG-bug-id: 3313 Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
560d85ecff
commit
6e808ae470
@ -2085,9 +2085,12 @@ get_config_filename (gc_component_t component, gc_backend_t backend)
|
|||||||
|
|
||||||
|
|
||||||
/* Retrieve the options for the component COMPONENT from backend
|
/* Retrieve the options for the component COMPONENT from backend
|
||||||
BACKEND, which we already know is a program-type backend. */
|
* BACKEND, which we already know is a program-type backend. With
|
||||||
|
* ONLY_INSTALLED set components which are not installed are silently
|
||||||
|
* ignored. */
|
||||||
static void
|
static void
|
||||||
retrieve_options_from_program (gc_component_t component, gc_backend_t backend)
|
retrieve_options_from_program (gc_component_t component, gc_backend_t backend,
|
||||||
|
int only_installed)
|
||||||
{
|
{
|
||||||
gpg_error_t err;
|
gpg_error_t err;
|
||||||
const char *pgmname;
|
const char *pgmname;
|
||||||
@ -2107,6 +2110,11 @@ retrieve_options_from_program (gc_component_t component, gc_backend_t backend)
|
|||||||
argv[0] = "--gpgconf-list";
|
argv[0] = "--gpgconf-list";
|
||||||
argv[1] = NULL;
|
argv[1] = NULL;
|
||||||
|
|
||||||
|
if (only_installed && access (pgmname, X_OK))
|
||||||
|
{
|
||||||
|
return; /* The component is not installed. */
|
||||||
|
}
|
||||||
|
|
||||||
err = gnupg_spawn_process (pgmname, argv, NULL, NULL, 0,
|
err = gnupg_spawn_process (pgmname, argv, NULL, NULL, 0,
|
||||||
NULL, &outfp, NULL, &pid);
|
NULL, &outfp, NULL, &pid);
|
||||||
if (err)
|
if (err)
|
||||||
@ -2378,7 +2386,7 @@ retrieve_options_from_file (gc_component_t component, gc_backend_t backend)
|
|||||||
|
|
||||||
/* Retrieve the currently active options and their defaults from all
|
/* Retrieve the currently active options and their defaults from all
|
||||||
involved backends for this component. Using -1 for component will
|
involved backends for this component. Using -1 for component will
|
||||||
retrieve all options from all components. */
|
retrieve all options from all installed components. */
|
||||||
void
|
void
|
||||||
gc_component_retrieve_options (int component)
|
gc_component_retrieve_options (int component)
|
||||||
{
|
{
|
||||||
@ -2420,7 +2428,8 @@ gc_component_retrieve_options (int component)
|
|||||||
assert (backend != GC_BACKEND_ANY);
|
assert (backend != GC_BACKEND_ANY);
|
||||||
|
|
||||||
if (gc_backend[backend].program)
|
if (gc_backend[backend].program)
|
||||||
retrieve_options_from_program (component, backend);
|
retrieve_options_from_program (component, backend,
|
||||||
|
process_all);
|
||||||
else
|
else
|
||||||
retrieve_options_from_file (component, backend);
|
retrieve_options_from_file (component, backend);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user