diff options
author | Sam Thursfield <sam@afuera.me.uk> | 2016-04-07 16:25:15 +0100 |
---|---|---|
committer | Sam Thursfield <sam@afuera.me.uk> | 2016-06-09 15:30:14 +0100 |
commit | b77763df43105cac1dc8f06cb20476821ea04d23 (patch) | |
tree | c855c7a6dfaa7e1b45dd3c45f420894640a65864 /src/tracker | |
parent | 7e8cc3dc8911853c838f76b4c4c0ec9ea51939f0 (diff) | |
download | tracker-b77763df43105cac1dc8f06cb20476821ea04d23.tar.gz |
cli: Add --verbosity option to `tracker extract`wip/sam/extract-command
This is based on the --set-log-verbosity option from `tracker daemon`.
The TRACKER_VERBOSITY environment variable also works here, and
overrides the value on the commandline, so I'm not sure if this patch
is really necessary...
Diffstat (limited to 'src/tracker')
-rw-r--r-- | src/tracker/tracker-extract.c | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/src/tracker/tracker-extract.c b/src/tracker/tracker-extract.c index a6f23c444..d4979f3fc 100644 --- a/src/tracker/tracker-extract.c +++ b/src/tracker/tracker-extract.c @@ -25,14 +25,21 @@ #include <glib/gi18n.h> #include <gio/gio.h> +#include <libtracker-common/tracker-common.h> + +#include "tracker-config.h" #include "tracker-extract.h" +static gchar *verbosity; static gchar **filenames; #define EXTRACT_OPTIONS_ENABLED() \ ((filenames && g_strv_length (filenames) > 0)) static GOptionEntry entries[] = { + { "verbosity", 'v', 0, G_OPTION_ARG_STRING, &verbosity, + N_("Sets the logging verbosity to LEVEL ('debug', 'detailed', 'minimal', 'errors') for all processes"), + N_("LEVEL") }, { G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &filenames, N_("FILE"), N_("FILE") }, @@ -41,16 +48,19 @@ static GOptionEntry entries[] = { static gint -extract_files (void) +extract_files (TrackerVerbosity verbosity) { char **p; char *tracker_extract_path; + char verbosity_str[2]; GError *error = NULL; + snprintf (verbosity_str, 2, "%i", verbosity); + tracker_extract_path = g_build_filename(LIBEXECDIR, "tracker-extract", NULL); for (p = filenames; *p; p++) { - char *argv[] = {tracker_extract_path, "--file", *p, NULL}; + char *argv[] = {tracker_extract_path, "--verbosity", verbosity_str, "--file", *p, NULL}; g_spawn_sync(NULL, argv, NULL, G_SPAWN_DEFAULT, NULL, NULL, NULL, NULL, NULL, &error); @@ -71,7 +81,25 @@ extract_files (void) static int extract_run (void) { - return extract_files (); + TrackerVerbosity verbosity_level = TRACKER_VERBOSITY_ERRORS; + + if (verbosity) { + if (g_ascii_strcasecmp (verbosity, "debug") == 0) { + verbosity_level = TRACKER_VERBOSITY_DEBUG; + } else if (g_ascii_strcasecmp (verbosity, "detailed") == 0) { + verbosity_level = TRACKER_VERBOSITY_DETAILED; + } else if (g_ascii_strcasecmp (verbosity, "minimal") == 0) { + verbosity_level = TRACKER_VERBOSITY_MINIMAL; + } else if (g_ascii_strcasecmp (verbosity, "errors") == 0) { + verbosity_level = TRACKER_VERBOSITY_ERRORS; + } else { + g_printerr ("%s\n", + _("Invalid log verbosity, try 'debug', 'detailed', 'minimal' or 'errors'")); + return EXIT_FAILURE; + } + } + + return extract_files (verbosity_level); } static int |