diff --git a/man/ostree-create-usb.xml b/man/ostree-create-usb.xml index d250d915..c3dfbc68 100644 --- a/man/ostree-create-usb.xml +++ b/man/ostree-create-usb.xml @@ -112,6 +112,15 @@ Boston, MA 02111-1307, USA. + + =COMMIT + + + Pull COMMIT instead of whatever REF points to. This can only + be used if a single ref is specified. + + + diff --git a/src/ostree/ot-builtin-create-usb.c b/src/ostree/ot-builtin-create-usb.c index 4230d7d1..849684f6 100644 --- a/src/ostree/ot-builtin-create-usb.c +++ b/src/ostree/ot-builtin-create-usb.c @@ -33,11 +33,13 @@ static gboolean opt_disable_fsync = FALSE; static char *opt_destination_repo = NULL; +static char *opt_commit = NULL; static GOptionEntry options[] = { { "disable-fsync", 0, 0, G_OPTION_ARG_NONE, &opt_disable_fsync, "Do not invoke fsync()", NULL }, { "destination-repo", 0, 0, G_OPTION_ARG_FILENAME, &opt_destination_repo, "Use custom repository directory within the mount", "DEST" }, + { "commit", 0, 0, G_OPTION_ARG_STRING, &opt_commit, "Pull a specific commit (only works when a single ref is specified)", "COMMIT" }, { NULL } }; @@ -78,6 +80,12 @@ ostree_builtin_create_usb (int argc, return FALSE; } + if (opt_commit && argc > 4) + { + ot_util_usage_error (context, "The --commit option can only be used when a single COLLECTION-ID REF pair is specified", error); + return FALSE; + } + /* Open the USB stick, which must exist. Allow automounting and following symlinks. */ const char *mount_root_path = argv[1]; struct stat mount_root_stbuf; @@ -154,7 +162,7 @@ ostree_builtin_create_usb (int argc, const OstreeCollectionRef *ref = g_ptr_array_index (refs, i); g_variant_builder_add (&refs_builder, "(sss)", - ref->collection_id, ref->ref_name, ""); + ref->collection_id, ref->ref_name, opt_commit ?: ""); } {