Date: Mon, 4 Sep 2017 14:09:52 GMT From: kneitinger@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r326786 - soc2017/kneitinger/libbe-head/sbin/be Message-ID: <201709041409.v84E9qJp081852@socsvn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: kneitinger Date: Mon Sep 4 14:09:51 2017 New Revision: 326786 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=326786 Log: Add in call to be_snapshot() when `be create` is called with one argument containing an "@" Modified: soc2017/kneitinger/libbe-head/sbin/be/be.c Modified: soc2017/kneitinger/libbe-head/sbin/be/be.c ============================================================================== --- soc2017/kneitinger/libbe-head/sbin/be/be.c Mon Sep 4 13:29:42 2017 (r326785) +++ soc2017/kneitinger/libbe-head/sbin/be/be.c Mon Sep 4 14:09:51 2017 (r326786) @@ -90,18 +90,18 @@ static struct command_map_entry command_map[] = { - { "activate", be_cmd_activate }, - { "create", be_cmd_create }, - { "destroy", be_cmd_destroy }, - { "export", be_cmd_export }, - { "import", be_cmd_import }, - { "init", be_cmd_init }, - { "jail", be_cmd_jail }, - { "list", be_cmd_list }, - { "mount", be_cmd_mount }, - { "rename", be_cmd_rename }, - { "unjail", be_cmd_unjail }, - { "unmount", be_cmd_unmount }, + { "activate", be_cmd_activate }, + { "create", be_cmd_create }, + { "destroy", be_cmd_destroy }, + { "export", be_cmd_export }, + { "import", be_cmd_import }, + { "init", be_cmd_init }, + { "jail", be_cmd_jail }, + { "list", be_cmd_list }, + { "mount", be_cmd_mount }, + { "rename", be_cmd_rename }, + { "unjail", be_cmd_unjail }, + { "unmount", be_cmd_unmount }, }; static int @@ -172,12 +172,10 @@ be_cmd_create(int argc, char *argv[]) { int err, opt; - bool recursive; char *existing; char *bootenv; existing = NULL; - recursive = false; while ((opt = getopt(argc, argv, "e:")) != -1) { switch (opt) { case 'e': @@ -209,7 +207,18 @@ err = be_create_from_existing(be, bootenv, existing); } } else { - err = be_create(be, bootenv); + /* char *existing, is unused in this case, so it can be + * safely repurposed as snap name */ + if ((existing = strchr(bootenv, '@')) != NULL) { + *(existing++) = '\0'; + if ((err = be_snapshot(be, bootenv, existing, NULL)) + != BE_ERR_SUCCESS) { + fprintf(stderr, "failed to create snapshot\n"); + } + return (err); + } else { + err = be_create(be, bootenv); + } } switch (err) {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201709041409.v84E9qJp081852>