chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
clients: unify how we invoke getopt_long()
[elogind.git]
/
src
/
modules-load
/
modules-load.c
diff --git
a/src/modules-load/modules-load.c
b/src/modules-load/modules-load.c
index 28b53ec7a3b71a1d7d151ed9f54f2cb7d0fdcba9..d37eec3f99feff993e05b84d42fb66099f44e6f3 100644
(file)
--- a/
src/modules-load/modules-load.c
+++ b/
src/modules-load/modules-load.c
@@
-33,8
+33,8
@@
#include "util.h"
#include "strv.h"
#include "conf-files.h"
#include "util.h"
#include "strv.h"
#include "conf-files.h"
-#include "virt.h"
#include "fileio.h"
#include "fileio.h"
+#include "build.h"
static char **arg_proc_cmdline_modules = NULL;
static char **arg_proc_cmdline_modules = NULL;
@@
-76,22
+76,19
@@
static int add_modules(const char *p) {
}
static int parse_proc_cmdline(void) {
}
static int parse_proc_cmdline(void) {
-
char _cleanup_free_
*line = NULL;
+
_cleanup_free_ char
*line = NULL;
char *w, *state;
char *w, *state;
- int r;
size_t l;
size_t l;
+ int r;
- if (detect_container(NULL) > 0)
- return 0;
-
- r = read_one_line_file("/proc/cmdline", &line);
- if (r < 0) {
+ r = proc_cmdline(&line);
+ if (r < 0)
log_warning("Failed to read /proc/cmdline, ignoring: %s", strerror(-r));
log_warning("Failed to read /proc/cmdline, ignoring: %s", strerror(-r));
+ if (r <= 0)
return 0;
return 0;
- }
FOREACH_WORD_QUOTED(w, l, line, state) {
FOREACH_WORD_QUOTED(w, l, line, state) {
-
char _cleanup_free_
*word;
+
_cleanup_free_ char
*word;
word = strndup(w, l);
if (!word)
word = strndup(w, l);
if (!word)
@@
-148,7
+145,7
@@
static int load_module(struct kmod_ctx *ctx, const char *m) {
break;
case KMOD_MODULE_LIVE:
break;
case KMOD_MODULE_LIVE:
- log_
info
("Module '%s' is already loaded", kmod_module_get_name(mod));
+ log_
debug
("Module '%s' is already loaded", kmod_module_get_name(mod));
break;
default:
break;
default:
@@
-206,7
+203,7
@@
static int apply_file(struct kmod_ctx *ctx, const char *path, bool ignore_enoent
l = strstrip(line);
if (!*l)
continue;
l = strstrip(line);
if (!*l)
continue;
- if (strchr(COMMENTS, *l))
+ if (strchr(COMMENTS
"\n"
, *l))
continue;
k = load_module(ctx, l);
continue;
k = load_module(ctx, l);
@@
-221,7
+218,8
@@
static int help(void) {
printf("%s [OPTIONS...] [CONFIGURATION FILE...]\n\n"
"Loads statically configured kernel modules.\n\n"
printf("%s [OPTIONS...] [CONFIGURATION FILE...]\n\n"
"Loads statically configured kernel modules.\n\n"
- " -h --help Show this help\n",
+ " -h --help Show this help\n"
+ " --version Show package version\n",
program_invocation_short_name);
return 0;
program_invocation_short_name);
return 0;
@@
-229,9
+227,14
@@
static int help(void) {
static int parse_argv(int argc, char *argv[]) {
static int parse_argv(int argc, char *argv[]) {
+ enum {
+ ARG_VERSION = 0x100,
+ };
+
static const struct option options[] = {
{ "help", no_argument, NULL, 'h' },
static const struct option options[] = {
{ "help", no_argument, NULL, 'h' },
- { NULL, 0, NULL, 0 }
+ { "version", no_argument, NULL, ARG_VERSION },
+ {}
};
int c;
};
int c;
@@
-244,15
+247,18
@@
static int parse_argv(int argc, char *argv[]) {
switch (c) {
case 'h':
switch (c) {
case 'h':
- help();
+ return help();
+
+ case ARG_VERSION:
+ puts(PACKAGE_STRING);
+ puts(SYSTEMD_FEATURES);
return 0;
case '?':
return -EINVAL;
default:
return 0;
case '?':
return -EINVAL;
default:
- log_error("Unknown option code %c", c);
- return -EINVAL;
+ assert_not_reached("Unhandled option");
}
}
}
}
@@
-302,8
+308,8
@@
int main(int argc, char *argv[]) {
STRV_FOREACH(i, arg_proc_cmdline_modules) {
k = load_module(ctx, *i);
STRV_FOREACH(i, arg_proc_cmdline_modules) {
k = load_module(ctx, *i);
- if (k < 0)
- r =
EXIT_FAILURE
;
+ if (k < 0
&& r == 0
)
+ r =
k
;
}
r = conf_files_list_nulstr(&files, ".conf", NULL, conf_file_dirs);
}
r = conf_files_list_nulstr(&files, ".conf", NULL, conf_file_dirs);