diff options
author | Colin Walters <walters@verbum.org> | 2017-12-10 15:01:44 -0500 |
---|---|---|
committer | Atomic Bot <atomic-devel@projectatomic.io> | 2017-12-12 19:31:16 +0000 |
commit | 7b8a6d0c6525ea984edf577f91bf1c42ca2796fb (patch) | |
tree | a8ab19c29275aa687d622297f0d9de254cd6a5cc | |
parent | ac092895b10be506eada983a15c8d128158b7ad7 (diff) | |
download | ostree-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.c | 12 | ||||
-rw-r--r-- | src/ostree/ot-dump.c | 7 | ||||
-rw-r--r-- | src/ostree/ot-dump.h | 5 | ||||
-rw-r--r-- | tests/basic-test.sh | 2 |
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" |