am f52abf4c: Merge "Add verbose option to make_ext4 command"
# By William Roberts
# Via Colin Cross (1) and Gerrit Code Review (1)
* commit 'f52abf4ca2ce307e7d4056e02c9e22075ab65459':
Add verbose option to make_ext4 command
diff --git a/ext4_utils/ext4_utils.h b/ext4_utils/ext4_utils.h
index 520b356..26952c0 100644
--- a/ext4_utils/ext4_utils.h
+++ b/ext4_utils/ext4_utils.h
@@ -175,7 +175,7 @@
int make_ext4fs_internal(int fd, const char *directory,
const char *mountpoint, fs_config_func_t fs_config_func, int gzip,
int sparse, int crc, int wipe, int init_itabs,
- struct selabel_handle *sehnd);
+ struct selabel_handle *sehnd, int verbose);
#ifdef __cplusplus
}
diff --git a/ext4_utils/make_ext4fs.c b/ext4_utils/make_ext4fs.c
index e69b473..5c1003d 100644
--- a/ext4_utils/make_ext4fs.c
+++ b/ext4_utils/make_ext4fs.c
@@ -109,7 +109,7 @@
if the image were mounted at the specified mount point */
static u32 build_directory_structure(const char *full_path, const char *dir_path,
u32 dir_inode, fs_config_func_t fs_config_func,
- struct selabel_handle *sehnd)
+ struct selabel_handle *sehnd, int verbose)
{
int entries = 0;
struct dentry *dentries;
@@ -183,11 +183,9 @@
if (selabel_lookup(sehnd, &dentries[i].secon, dentries[i].path, stat.st_mode) < 0) {
error("cannot lookup security context for %s", dentries[i].path);
}
-#if 0
- // TODO make this a debug flag
- if (dentries[i].secon)
+
+ if (dentries[i].secon && verbose)
printf("Labeling %s as %s\n", dentries[i].path, dentries[i].secon);
-#endif
}
#endif
@@ -256,7 +254,7 @@
if (ret < 0)
critical_error_errno("asprintf");
entry_inode = build_directory_structure(subdir_full_path,
- subdir_dir_path, inode, fs_config_func, sehnd);
+ subdir_dir_path, inode, fs_config_func, sehnd, verbose);
free(subdir_full_path);
free(subdir_dir_path);
} else if (dentries[i].file_type == EXT4_FT_SYMLINK) {
@@ -363,7 +361,7 @@
reset_ext4fs_info();
info.len = len;
- return make_ext4fs_internal(fd, NULL, mountpoint, NULL, 0, 1, 0, 0, 0, sehnd);
+ return make_ext4fs_internal(fd, NULL, mountpoint, NULL, 0, 1, 0, 0, 0, sehnd, 0);
}
int make_ext4fs(const char *filename, long long len,
@@ -381,7 +379,7 @@
return EXIT_FAILURE;
}
- status = make_ext4fs_internal(fd, NULL, mountpoint, NULL, 0, 0, 0, 1, 0, sehnd);
+ status = make_ext4fs_internal(fd, NULL, mountpoint, NULL, 0, 0, 0, 1, 0, sehnd, 0);
close(fd);
return status;
@@ -447,7 +445,7 @@
int make_ext4fs_internal(int fd, const char *_directory,
const char *_mountpoint, fs_config_func_t fs_config_func, int gzip,
int sparse, int crc, int wipe, int init_itabs,
- struct selabel_handle *sehnd)
+ struct selabel_handle *sehnd, int verbose)
{
u32 root_inode_num;
u16 root_mode;
@@ -555,7 +553,7 @@
#else
if (directory)
root_inode_num = build_directory_structure(directory, mountpoint, 0,
- fs_config_func, sehnd);
+ fs_config_func, sehnd, verbose);
else
root_inode_num = build_default_directory_structure();
#endif
@@ -570,7 +568,7 @@
if (selabel_lookup(sehnd, &secontext, mountpoint, S_IFDIR) < 0) {
error("cannot lookup security context for %s", mountpoint);
}
- if (secontext) {
+ if (secontext && verbose) {
printf("Labeling %s as %s\n", mountpoint, secontext);
inode_set_selinux(root_inode_num, secontext);
}
diff --git a/ext4_utils/make_ext4fs_main.c b/ext4_utils/make_ext4fs_main.c
index 71fc3c1..739c4a1 100644
--- a/ext4_utils/make_ext4fs_main.c
+++ b/ext4_utils/make_ext4fs_main.c
@@ -53,7 +53,7 @@
fprintf(stderr, " [ -g <blocks per group> ] [ -i <inodes> ] [ -I <inode size> ]\n");
fprintf(stderr, " [ -L <label> ] [ -f ] [ -a <android mountpoint> ]\n");
fprintf(stderr, " [ -S file_contexts ]\n");
- fprintf(stderr, " [ -z | -s ] [ -t ] [ -w ] [ -c ] [ -J ]\n");
+ fprintf(stderr, " [ -z | -s ] [ -t ] [ -w ] [ -c ] [ -J ] [ -v ]\n");
fprintf(stderr, " <filename> [<directory>]\n");
}
@@ -71,12 +71,13 @@
int init_itabs = 0;
int fd;
int exitcode;
+ int verbose = 0;
struct selabel_handle *sehnd = NULL;
#ifndef USE_MINGW
struct selinux_opt seopts[] = { { SELABEL_OPT_PATH, "" } };
#endif
- while ((opt = getopt(argc, argv, "l:j:b:g:i:I:L:a:fwzJsctS:")) != -1) {
+ while ((opt = getopt(argc, argv, "l:j:b:g:i:I:L:a:S:fwzJsctv")) != -1) {
switch (opt) {
case 'l':
info.len = parse_num(optarg);
@@ -140,6 +141,9 @@
}
#endif
break;
+ case 'v':
+ verbose = 1;
+ break;
default: /* '?' */
usage(argv[0]);
exit(EXIT_FAILURE);
@@ -198,7 +202,7 @@
}
exitcode = make_ext4fs_internal(fd, directory, mountpoint, fs_config_func, gzip,
- sparse, crc, wipe, init_itabs, sehnd);
+ sparse, crc, wipe, init_itabs, sehnd, verbose);
close(fd);
return exitcode;