summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2017-12-10 15:01:44 -0500
committerAtomic Bot <atomic-devel@projectatomic.io>2017-12-12 19:31:16 +0000
commit7b8a6d0c6525ea984edf577f91bf1c42ca2796fb (patch)
treea8ab19c29275aa687d622297f0d9de254cd6a5cc
parentac092895b10be506eada983a15c8d128158b7ad7 (diff)
downloadostree-7b8a6d0c6525ea984edf577f91bf1c42ca2796fb.tar.gz
bin/show: Add --no-byteswap
rpm-ostree writes host-endian data when importing packages, so let's add support for not byteswapping. Closes: #1372 Approved by: jlebon
-rw-r--r--src/ostree/ot-builtin-show.c12
-rw-r--r--src/ostree/ot-dump.c7
-rw-r--r--src/ostree/ot-dump.h5
-rw-r--r--tests/basic-test.sh2
4 files changed, 22 insertions, 4 deletions
diff --git a/src/ostree/ot-builtin-show.c b/src/ostree/ot-builtin-show.c
index 2eec7f35..73ef492c 100644
--- a/src/ostree/ot-builtin-show.c
+++ b/src/ostree/ot-builtin-show.c
@@ -32,6 +32,7 @@ static char* opt_print_variant_type;
static char* opt_print_metadata_key;
static char* opt_print_detached_metadata_key;
static gboolean opt_raw;
+static gboolean opt_no_byteswap;
static char *opt_gpg_homedir;
static char *opt_gpg_verify_remote;
@@ -46,6 +47,7 @@ static GOptionEntry options[] = {
{ "print-metadata-key", 0, 0, G_OPTION_ARG_STRING, &opt_print_metadata_key, "Print string value of metadata key", "KEY" },
{ "print-detached-metadata-key", 0, 0, G_OPTION_ARG_STRING, &opt_print_detached_metadata_key, "Print string value of detached metadata key", "KEY" },
{ "raw", 0, 0, G_OPTION_ARG_NONE, &opt_raw, "Show raw variant data" },
+ { "no-byteswap", 'B', 0, G_OPTION_ARG_NONE, &opt_no_byteswap, "Do not automatically convert variant data from big endian" },
{ "gpg-homedir", 0, 0, G_OPTION_ARG_FILENAME, &opt_gpg_homedir, "GPG Homedir to use when looking for keyrings", "HOMEDIR"},
{ "gpg-verify-remote", 0, 0, G_OPTION_ARG_STRING, &opt_gpg_verify_remote, "Use REMOTE name for GPG configuration", "REMOTE"},
{ NULL }
@@ -132,7 +134,13 @@ do_print_metadata_key (OstreeRepo *repo,
return FALSE;
}
- ot_dump_variant (value);
+ if (opt_no_byteswap)
+ {
+ g_autofree char *formatted = g_variant_print (value, TRUE);
+ g_print ("%s\n", formatted);
+ }
+ else
+ ot_dump_variant (value);
return TRUE;
}
@@ -150,6 +158,8 @@ print_object (OstreeRepo *repo,
return FALSE;
if (opt_raw)
flags |= OSTREE_DUMP_RAW;
+ if (opt_no_byteswap)
+ flags |= OSTREE_DUMP_UNSWAPPED;
ot_dump_object (objtype, checksum, variant, flags);
if (objtype == OSTREE_OBJECT_TYPE_COMMIT)
diff --git a/src/ostree/ot-dump.c b/src/ostree/ot-dump.c
index 7f7f8b6b..071530f8 100644
--- a/src/ostree/ot-dump.c
+++ b/src/ostree/ot-dump.c
@@ -157,7 +157,12 @@ ot_dump_object (OstreeObjectType objtype,
{
g_print ("%s %s\n", ostree_object_type_to_string (objtype), checksum);
- if (flags & OSTREE_DUMP_RAW)
+ if (flags & OSTREE_DUMP_UNSWAPPED)
+ {
+ g_autofree char *formatted = g_variant_print (variant, TRUE);
+ g_print ("%s\n", formatted);
+ }
+ else if (flags & OSTREE_DUMP_RAW)
{
ot_dump_variant (variant);
return;
diff --git a/src/ostree/ot-dump.h b/src/ostree/ot-dump.h
index 010449c3..0839b57c 100644
--- a/src/ostree/ot-dump.h
+++ b/src/ostree/ot-dump.h
@@ -26,8 +26,9 @@
#include "ostree-core.h"
typedef enum {
- OSTREE_DUMP_NONE = 0,
- OSTREE_DUMP_RAW = 1,
+ OSTREE_DUMP_NONE = (1 << 0),
+ OSTREE_DUMP_RAW = (1 << 1),
+ OSTREE_DUMP_UNSWAPPED = (1 << 2),
} OstreeDumpFlags;
void ot_dump_variant (GVariant *variant);
diff --git a/tests/basic-test.sh b/tests/basic-test.sh
index e1af66cc..06092c12 100644
--- a/tests/basic-test.sh
+++ b/tests/basic-test.sh
@@ -761,6 +761,8 @@ $OSTREE show --print-metadata-key=KITTENS test2 > test2-meta
assert_file_has_content test2-meta "CUTE"
$OSTREE show --print-metadata-key=SOMENUM test2 > test2-meta
assert_file_has_content test2-meta "uint64 3026418949592973312"
+$OSTREE show -B --print-metadata-key=SOMENUM test2 > test2-meta
+assert_file_has_content test2-meta "uint64 42"
$OSTREE show --print-detached-metadata-key=SIGNATURE test2 > test2-meta
assert_file_has_content test2-meta "HANCOCK"
echo "ok metadata commit with strings"