浏览代码

Merge branch 'feature/findconfig-verbose' into 'master'

add verbose option to findconfig

See merge request megapixels-org/libmegapixels!1
Martijn Braam 7 月之前
父节点
当前提交
65c2918b52
共有 3 个文件被更改,包括 31 次插入6 次删除
  1. 3 0
      include/libmegapixels.h
  2. 21 3
      src/findconfig.c
  3. 7 3
      util/findconfig.c

+ 3 - 0
include/libmegapixels.h

@@ -10,6 +10,9 @@
 EXPORT int
 libmegapixels_find_config(char *configfile);
 
+EXPORT int
+libmegapixels_find_config_verbose(char *configfile, int print);
+
 #define LIBMEGAPIXELS_CMD_LINK 1
 #define LIBMEGAPIXELS_CMD_MODE 2
 #define LIBMEGAPIXELS_CMD_CROP 3

+ 21 - 3
src/findconfig.c

@@ -10,30 +10,42 @@
 #endif
 
 static int
-find_device_by_model(char *conffile, char *model)
+find_device_by_model(char *conffile, char *model, int print)
 {
 	// Check config/%model.conf in the current working directory
 	sprintf(conffile, "config/%s.conf", model);
+	if (print) {
+		printf("- %s\n", conffile);
+	}
 	if (access(conffile, F_OK) != -1) {
 		return 1;
 	}
 
 	// Check user overridden /etc/megapixels/config/%model.conf
 	sprintf(conffile, "%s/megapixels/config/%s.conf", SYSCONFDIR, model);
+	if (print) {
+		printf("- %s\n", conffile);
+	}
 	if (access(conffile, F_OK) != -1) {
 		return 1;
 	}
 
 	// Check packaged /usr/share/megapixels/config/%model.conf
 	sprintf(conffile, "%s/megapixels/config/%s.conf", DATADIR, model);
+	if (print) {
+		printf("- %s\n", conffile);
+	}
 	if (access(conffile, F_OK) != -1) {
 		return 1;
 	}
+	if (print) {
+		printf("no config for '%s'\n", model);
+	}
 	return 0;
 }
 
 int
-libmegapixels_find_config(char *configfile)
+libmegapixels_find_config_verbose(char *configfile, int print)
 {
 	char model[512];
 	FILE *fp;
@@ -50,10 +62,16 @@ libmegapixels_find_config(char *configfile)
 		}
 		*(modelptr++) = (char) c;
 		if (c == 0) {
-			if (find_device_by_model(configfile, model)) {
+			if (find_device_by_model(configfile, model, print)) {
 				return 1;
 			}
 			modelptr = model;
 		}
 	}
+}
+
+int
+libmegapixels_find_config(char *configfile)
+{
+	return libmegapixels_find_config_verbose(configfile, 0);
 }

+ 7 - 3
util/findconfig.c

@@ -10,14 +10,18 @@ main(int argc, char *argv[])
 	int c;
 
 	char configpath[PATH_MAX];
-	int ret = libmegapixels_find_config(configpath);
+	int ret;
+	int verbose = 0;
 
-	while ((c = getopt(argc, argv, "c:")) != -1) {
+	while ((c = getopt(argc, argv, "c:v")) != -1) {
 		switch (c) {
 			case 'c':
 				sprintf(configpath, "%s", optarg);
 				ret = 1;
 				break;
+			case 'v':
+				verbose = 1;
+				break;
 			case '?':
 				if (optopt == 'd' || optopt == 'l') {
 					fprintf(stderr, "Option -%c requires an argument.\n", optopt);
@@ -31,7 +35,7 @@ main(int argc, char *argv[])
 				return 1;
 		}
 	}
-
+	ret = libmegapixels_find_config_verbose(configpath, verbose);
 	libmegapixels_devconfig *config = {0};
 	libmegapixels_init(&config);