#include <stdio.h>
#include <getopt.h>
-#include <error.h>
#include <errno.h>
#include <unistd.h>
#include <stdlib.h>
[SD_PATH_SEARCH_CONFIGURATION] = "search-configuration",
};
-static int help(void) {
-
- printf("%s [OPTIONS...] [NAME...]\n\n"
- "Show system and user paths.\n\n"
- " -h --help Show this help\n"
- " --version Show package version\n"
- " --suffix=SUFFIX Suffix to append to paths\n",
- program_invocation_short_name);
-
- return 0;
-}
-
static int list_homes(void) {
uint64_t i = 0;
int r = 0;
if (q == -ENXIO)
continue;
if (q < 0) {
- log_error("Failed to query %s: %s", path_table[i], strerror(-r));
+ log_error_errno(r, "Failed to query %s: %m", path_table[i]);
r = q;
continue;
}
_cleanup_free_ char *p = NULL;
r = sd_path_home(i, arg_suffix, &p);
- if (r < 0) {
- log_error("Failed to query %s: %s", n, strerror(-r));
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Failed to query %s: %m", n);
printf("%s\n", p);
return 0;
return -ENOTSUP;
}
+static void help(void) {
+ printf("%s [OPTIONS...] [NAME...]\n\n"
+ "Show system and user paths.\n\n"
+ " -h --help Show this help\n"
+ " --version Show package version\n"
+ " --suffix=SUFFIX Suffix to append to paths\n",
+ program_invocation_short_name);
+}
+
static int parse_argv(int argc, char *argv[]) {
enum {
assert(argc >= 0);
assert(argv);
- while ((c = getopt_long(argc, argv, "h", options, NULL)) >= 0) {
+ while ((c = getopt_long(argc, argv, "h", options, NULL)) >= 0)
switch (c) {
case 'h':
- return help();
+ help();
+ return 0;
case ARG_VERSION:
puts(PACKAGE_STRING);
default:
assert_not_reached("Unhandled option");
}
- }
return 1;
}