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

add verbose option to findconfig

See merge request megapixels-org/libmegapixels!1
This commit is contained in:
Martijn Braam
2023-11-14 13:20:50 +00:00
3 changed files with 31 additions and 6 deletions

View File

@@ -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

View File

@@ -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);
}

View File

@@ -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);