[oe-commits] Lu Chong : makedevs: several fixes

git at git.openembedded.org git at git.openembedded.org
Fri Nov 8 17:26:15 UTC 2013


Module: openembedded-core.git
Branch: master
Commit: 24089364c3d11665c9ac3210c1fa2488017b6b73
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=24089364c3d11665c9ac3210c1fa2488017b6b73

Author: Lu Chong <Chong.Lu at windriver.com>
Date:   Tue Nov  5 19:49:30 2013 +0800

makedevs: several fixes

This patch fixes below issues:

1. In makedevs.c file, it lost related functions definition about "-q" and
"--squash" options. So we should remove help information of these options
from makedevs.c to fix this issue.

2. Previously, It returned nothing when makedevs command be executed with
none or invalid option. We hope to print help information and return non-zero
value.

3. If use '-d' option to pick non-existent dir, error messages should be returned.

Signed-off-by: Lu Chong <Chong.Lu at windriver.com>
Signed-off-by: Saul Wold <sgw at linux.intel.com>

---

 .../makedevs/makedevs-1.0.0/makedevs.c                 | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/meta/recipes-devtools/makedevs/makedevs-1.0.0/makedevs.c b/meta/recipes-devtools/makedevs/makedevs-1.0.0/makedevs.c
index 53700c6..003d4c3 100644
--- a/meta/recipes-devtools/makedevs/makedevs-1.0.0/makedevs.c
+++ b/meta/recipes-devtools/makedevs/makedevs-1.0.0/makedevs.c
@@ -434,7 +434,6 @@ static int parse_devtable(FILE * devtable)
 static struct option long_options[] = {
 	{"root", 1, NULL, 'r'},
 	{"help", 0, NULL, 'h'},
-	{"squash", 0, NULL, 'q'},
 	{"version", 0, NULL, 'v'},
 	{"devtable", 1, NULL, 'D'},
 	{NULL, 0, NULL, 0}
@@ -446,7 +445,6 @@ static char *helptext =
 	"Options:\n"
 	"  -r, -d, --root=DIR     Build filesystem from directory DIR (default: cwd)\n"
 	"  -D, --devtable=FILE    Use the named FILE as a device table file\n"
-	"  -q, --squash           Squash permissions and owners making all files be owned by root\n"
 	"  -h, --help             Display this help text\n"
 	"  -v, --version          Display version information\n\n";
 
@@ -463,9 +461,15 @@ int main(int argc, char **argv)
 	FILE *passwd_file = NULL;
 	FILE *group_file = NULL;
 	FILE *devtable = NULL;
+	DIR *dir = NULL;
 
 	umask (0);
 
+	if (argc==1) {
+		fprintf(stderr, helptext);
+		exit(1);
+	}
+
 	while ((opt = getopt_long(argc, argv, "D:d:r:qhv", 
 			long_options, &c)) >= 0) {
 		switch (opt) {
@@ -484,6 +488,11 @@ int main(int argc, char **argv)
 			if (rootdir != default_rootdir) {
 				error_msg_and_die("root directory specified more than once");
 			}
+			if ((dir = opendir(optarg)) == NULL) {
+				perror_msg_and_die(optarg);
+			} else {
+				closedir(dir);
+			}
 			rootdir = xstrdup(optarg);
 			break;
 
@@ -497,6 +506,11 @@ int main(int argc, char **argv)
 		}
 	}
 
+	if (argv[optind] != NULL) {
+		fprintf(stderr, helptext);
+		exit(1);
+	}
+
 	// Get name-id mapping
 	sprintf(passwd_path, "%s/etc/passwd", rootdir);
 	sprintf(group_path, "%s/etc/group", rootdir);



More information about the Openembedded-commits mailing list