summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartyn Russell <martyn@lanedo.com>2012-10-17 12:03:57 +0100
committerMartyn Russell <martyn@lanedo.com>2012-10-24 16:47:14 +0100
commite6731f2d65db17e584d8ed302b33be07f932544b (patch)
tree1ef03fdd24479c974d29d82d46dc310f851c1c09
parent6eecbbda4b1e4c0c0f1873f7555d38af72c28720 (diff)
downloadtracker-e6731f2d65db17e584d8ed302b33be07f932544b.tar.gz
tracker-info: Added --plain-text-content || -c option
To show nie:plainTextContent for resources. By default this is disabled.
-rw-r--r--docs/manpages/tracker-info.16
-rw-r--r--src/tracker-utils/tracker-info.c47
2 files changed, 44 insertions, 9 deletions
diff --git a/docs/manpages/tracker-info.1 b/docs/manpages/tracker-info.1
index cde9cffb7..48fd8196d 100644
--- a/docs/manpages/tracker-info.1
+++ b/docs/manpages/tracker-info.1
@@ -33,6 +33,12 @@ This makes things much easier to see generally and the output is less
cluttered. This option reverses that so FULL namespaces are shown
instead.
.TP
+.B \-c, \-\-plain\-text\-content
+If the resource being displayed has nie:PlainTextContent (i.e.
+information about the content of the resource, which could be the
+contents of a file on the disk), then this option displays that in the
+output.
+.TP
.B \-t, \-\-turtle
Output results as Turtle RDF. If \-f is enabled, full URIs are shown
for subjects, predicates and objects; otherwise, shortened URIs are
diff --git a/src/tracker-utils/tracker-info.c b/src/tracker-utils/tracker-info.c
index dceb73d58..753d8676b 100644
--- a/src/tracker-utils/tracker-info.c
+++ b/src/tracker-utils/tracker-info.c
@@ -43,6 +43,7 @@
static gchar **filenames;
static gboolean full_namespaces;
static gboolean print_version;
+static gboolean plain_text_content;
static gboolean turtle;
static GOptionEntry entries[] = {
@@ -54,6 +55,10 @@ static GOptionEntry entries[] = {
N_("Show full namespaces (i.e. don't use nie:title, use full URLs)"),
NULL,
},
+ { "plain-text-content", 'c', 0, G_OPTION_ARG_NONE, &plain_text_content,
+ N_("Show plain text content if available for resources"),
+ NULL,
+ },
{ "turtle", 't', 0, G_OPTION_ARG_NONE, &turtle,
N_("Output results as RDF in Turtle format"),
NULL,
@@ -167,6 +172,22 @@ get_prefixes (TrackerSparqlConnection *connection)
return retval;
}
+static inline void
+print_key_and_value (GHashTable *prefixes,
+ const gchar *key,
+ const gchar *value)
+{
+ if (G_UNLIKELY (full_namespaces)) {
+ g_print (" '%s' = '%s'\n", key, value);
+ } else {
+ gchar *shorthand;
+
+ shorthand = get_shorthand (prefixes, key);
+ g_print (" '%s' = '%s'\n", shorthand, value);
+ g_free (shorthand);
+ }
+}
+
static void
print_plain (gchar *urn_or_filename,
gchar *urn,
@@ -174,6 +195,9 @@ print_plain (gchar *urn_or_filename,
GHashTable *prefixes,
gboolean full_namespaces)
{
+ gchar *fts_key = NULL;
+ gchar *fts_value = NULL;
+
while (tracker_sparql_cursor_next (cursor, NULL, NULL)) {
const gchar *key = tracker_sparql_cursor_get_string (cursor, 0, NULL);
const gchar *value = tracker_sparql_cursor_get_string (cursor, 1, NULL);
@@ -184,19 +208,24 @@ print_plain (gchar *urn_or_filename,
/* Don't display nie:plainTextContent */
if (strcmp (key, "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#plainTextContent") == 0) {
+ if (plain_text_content) {
+ fts_key = g_strdup (key);
+ fts_value = g_strdup (value);
+ }
+
+ /* Always print FTS data at the end because of it's length */
continue;
}
- if (G_UNLIKELY (full_namespaces)) {
- g_print (" '%s' = '%s'\n", key, value);
- } else {
- gchar *shorthand;
+ print_key_and_value (prefixes, key, value);
+ }
- shorthand = get_shorthand (prefixes, key);
- g_print (" '%s' = '%s'\n", shorthand, value);
- g_free (shorthand);
- }
+ if (fts_key && fts_value) {
+ print_key_and_value (prefixes, fts_key, fts_value);
}
+
+ g_free (fts_key);
+ g_free (fts_value);
}
/* print a URI prefix in Turtle format */
@@ -273,7 +302,7 @@ print_turtle (gchar *urn,
}
/* Don't display nie:plainTextContent */
- if (strcmp (key, "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#plainTextContent") == 0) {
+ if (!plain_text_content && strcmp (key, "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#plainTextContent") == 0) {
continue;
}