From 4cb052473c9536616f4e4cd29b92baee4159a176 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Tue, 2 Oct 2012 23:34:06 +0200 Subject: [PATCH] Add new option -D, and only enable debug logging if passed --- sparsebundlefs.cpp | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/sparsebundlefs.cpp b/sparsebundlefs.cpp index d7da1b7..ce9b708 100644 --- a/sparsebundlefs.cpp +++ b/sparsebundlefs.cpp @@ -132,13 +132,22 @@ static int sparsebundle_read(const char *path, char *buffer, size_t length, off_ static int sparsebundle_show_usage(char *program_name) { - fprintf(stderr, "usage: %s [-o options] \n", program_name); + fprintf(stderr, "usage: %s [-o options] [-f] [-D] \n", program_name); return 1; } +enum { SPARSEBUNDLE_OPT_DEBUG }; + static int sparsebundle_opt_proc(void *data, const char *arg, int key, struct fuse_args *outargs) { - if (key == FUSE_OPT_KEY_NONOPT && !SB_DATA_CAST(data)->path) { + switch (key) { + case SPARSEBUNDLE_OPT_DEBUG: + setlogmask(LOG_UPTO(LOG_DEBUG)); + return 0; + case FUSE_OPT_KEY_NONOPT: + if (SB_DATA_CAST(data)->path) + return 1; + SB_DATA_CAST(data)->path = strdup(arg); return 0; } @@ -160,11 +169,16 @@ static off_t read_size(const string &str) int main(int argc, char **argv) { openlog("sparsebundlefs", LOG_CONS | LOG_PERROR, LOG_USER); + setlogmask(~(LOG_MASK(LOG_DEBUG))); struct sparsebundle_data data = {}; + static struct fuse_opt sparsebundle_options[] = { + FUSE_OPT_KEY("-D", SPARSEBUNDLE_OPT_DEBUG), FUSE_OPT_END + }; + struct fuse_args args = FUSE_ARGS_INIT(argc, argv); - fuse_opt_parse(&args, &data, 0, sparsebundle_opt_proc); + fuse_opt_parse(&args, &data, sparsebundle_options, sparsebundle_opt_proc); if (!data.path) return sparsebundle_show_usage(argv[0]);