diff options
Diffstat (limited to 'mkfs')
| -rw-r--r-- | mkfs/block.c | 26 | ||||
| -rw-r--r-- | mkfs/mkfs.h | 1 | ||||
| -rw-r--r-- | mkfs/options.c | 7 | 
3 files changed, 29 insertions, 5 deletions
| diff --git a/mkfs/block.c b/mkfs/block.c index 76b261d..545df53 100644 --- a/mkfs/block.c +++ b/mkfs/block.c @@ -175,18 +175,36 @@ fail_trunc:  	goto fail;  } -static int find_and_process_files(sqfs_info_t *info, tree_node_t *n) +static void print_name(tree_node_t *n) +{ +	if (n->parent != NULL) { +		print_name(n->parent); +		fputc('/', stdout); +	} + +	fputs(n->name, stdout); +} + +static int find_and_process_files(sqfs_info_t *info, tree_node_t *n, +				  bool quiet)  {  	if (S_ISDIR(n->mode)) {  		for (n = n->data.dir->children; n != NULL; n = n->next) { -			if (find_and_process_files(info, n)) +			if (find_and_process_files(info, n, quiet))  				return -1;  		}  		return 0;  	} -	if (S_ISREG(n->mode)) +	if (S_ISREG(n->mode)) { +		if (!quiet) { +			fputs("packing ", stdout); +			print_name(n); +			fputc('\n', stdout); +		} +  		return process_file(info, n->data.file); +	}  	return 0;  } @@ -218,7 +236,7 @@ int write_data_to_image(sqfs_info_t *info)  		return -1;  	} -	ret = find_and_process_files(info, info->fs.root); +	ret = find_and_process_files(info, info->fs.root, info->opt.quiet);  	free(info->block);  	free(info->fragment); diff --git a/mkfs/mkfs.h b/mkfs/mkfs.h index 8a867f2..c689848 100644 --- a/mkfs/mkfs.h +++ b/mkfs/mkfs.h @@ -25,6 +25,7 @@ typedef struct {  	int compressor;  	int blksz;  	int devblksz; +	bool quiet;  	const char *infile;  	const char *outfile;  } options_t; diff --git a/mkfs/options.c b/mkfs/options.c index 4d49a9b..0a556eb 100644 --- a/mkfs/options.c +++ b/mkfs/options.c @@ -17,11 +17,12 @@ static struct option long_opts[] = {  	{ "dev-block-size", required_argument, NULL, 'B' },  	{ "defaults", required_argument, NULL, 'd' },  	{ "force", no_argument, NULL, 'f' }, +	{ "quiet", no_argument, NULL, 'q' },  	{ "version", no_argument, NULL, 'V' },  	{ "help", no_argument, NULL, 'h' },  }; -static const char *short_opts = "c:b:B:d:fhV"; +static const char *short_opts = "c:b:B:d:fqhV";  enum {  	DEF_UID = 0, @@ -97,6 +98,7 @@ static const char *help_string =  "                                 mtime=<value>  0 if not set.\n"  "\n"  "  --force, -f                 Overwrite the output file if it exists.\n" +"  --quiet, -q                 Do not print out progress reports.\n"  "  --help, -h                  Print help text and exit.\n"  "  --version, -V               Print version information and exit.\n"  "\n"; @@ -260,6 +262,9 @@ void process_command_line(options_t *opt, int argc, char **argv)  		case 'f':  			opt->outmode = O_WRONLY | O_CREAT | O_TRUNC;  			break; +		case 'q': +			opt->quiet = true; +			break;  		case 'h':  			printf(help_string, __progname,  			       SQFS_DEFAULT_BLOCK_SIZE, SQFS_DEVBLK_SIZE); | 
