From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from woodpecker.gentoo.org ([2001:470:ea4a:1:214:c2ff:fe64:b2d3] helo=smtp.gentoo.org) by merlin.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1Ua7DY-0006BV-ST for linux-mtd@lists.infradead.org; Wed, 08 May 2013 16:27:49 +0000 Received: from localhost.localdomain (localhost [127.0.0.1]) by smtp.gentoo.org (Postfix) with ESMTP id 1628333DFE0 for ; Wed, 8 May 2013 16:27:27 +0000 (UTC) From: Mike Frysinger To: linux-mtd@lists.infradead.org Subject: [PATCH [mtd-utils] 3/3] mkfs.ubifs: allow reformatting of devices Date: Wed, 8 May 2013 12:27:26 -0400 Message-Id: <1368030446-343-3-git-send-email-vapier@gentoo.org> In-Reply-To: <1368030446-343-1-git-send-email-vapier@gentoo.org> References: <1368030446-343-1-git-send-email-vapier@gentoo.org> List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sometimes I want to re-initialize an existing ubifs, but the tool currently bails out if the volume is already formatted. Prompt the user instead so they can decide. Signed-off-by: Mike Frysinger --- mkfs.ubifs/mkfs.ubifs.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/mkfs.ubifs/mkfs.ubifs.c b/mkfs.ubifs/mkfs.ubifs.c index 2bb819e..427e37d 100644 --- a/mkfs.ubifs/mkfs.ubifs.c +++ b/mkfs.ubifs/mkfs.ubifs.c @@ -103,6 +103,7 @@ static libubi_t ubi; /* Debug levels are: 0 (none), 1 (statistics), 2 (files) ,3 (more details) */ int debug_level; int verbose; +int yes; static char *root; static int root_len; @@ -133,7 +134,7 @@ static struct inum_mapping **hash_table; /* Inode creation sequence number */ static unsigned long long creat_sqnum; -static const char *optstring = "d:r:m:o:D:h?vVe:c:g:f:Fp:k:x:X:j:R:l:j:UQq"; +static const char *optstring = "d:r:m:o:D:yh?vVe:c:g:f:Fp:k:x:X:j:R:l:j:UQq"; static const struct option longopts[] = { {"root", 1, NULL, 'r'}, @@ -142,6 +143,7 @@ static const struct option longopts[] = { {"max-leb-cnt", 1, NULL, 'c'}, {"output", 1, NULL, 'o'}, {"devtable", 1, NULL, 'D'}, + {"yes", 0, NULL, 'y'}, {"help", 0, NULL, 'h'}, {"verbose", 0, NULL, 'v'}, {"version", 0, NULL, 'V'}, @@ -191,6 +193,7 @@ static const char *helptext = "-U, --squash-uids squash owners making all files owned by root\n" "-l, --log-lebs=COUNT count of erase blocks for the log (used only for\n" " debugging)\n" +"-y, --yes assume the answer is \"yes\" for all questions\n" "-v, --verbose verbose operation\n" "-V, --version display version information\n" "-g, --debug=LEVEL display debug information (0 - none, 1 - statistics,\n" @@ -539,6 +542,9 @@ static int get_options(int argc, char**argv) return sys_err_msg("bad device table file '%s'", tbl_file); break; + case 'y': + yes = 1; + break; case 'h': case '?': printf("%s", helptext); @@ -2098,8 +2104,10 @@ static int open_target(void) if (ubi_set_property(out_fd, UBI_VOL_PROP_DIRECT_WRITE, 1)) return sys_err_msg("ubi_set_property failed"); - if (check_volume_empty()) - return err_msg("UBI volume is not empty"); + if (!yes && check_volume_empty()) { + if (!prompt("UBI volume is not empty. Format anyways?", false)) + return err_msg("UBI volume is not empty"); + } } else { out_fd = open(output, O_CREAT | O_RDWR | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH); -- 1.8.2.1