mirror of
https://github.com/systemd/systemd.git
synced 2025-01-07 21:18:41 +03:00
udev-rules: terminate log messages with period
This commit is contained in:
parent
c507c81ee7
commit
4134614fc0
@ -304,7 +304,7 @@ static void log_unknown_owner(sd_device *dev, UdevRuleLine *line, int error, con
|
||||
|
||||
if (IN_SET(abs(error), ENOENT, ESRCH))
|
||||
log_udev_rule_internal(dev, line->rule_file, line->line_number, LOG_ERR, error,
|
||||
"Unknown %s '%s', ignoring", entity, name);
|
||||
"Unknown %s '%s', ignoring.", entity, name);
|
||||
else
|
||||
log_udev_rule_internal(dev, line->rule_file, line->line_number, LOG_ERR, error,
|
||||
"Failed to resolve %s '%s', ignoring: %m", entity, name);
|
||||
@ -844,7 +844,7 @@ static int parse_token(UdevRuleLine *rule_line, const char *key, char *attr, Ude
|
||||
|
||||
cmd = udev_builtin_lookup(value);
|
||||
if (cmd >= 0) {
|
||||
log_line_debug(rule_line, "Found builtin command '%s' for %s, replacing attribute", value, key);
|
||||
log_line_debug(rule_line, "Found builtin command '%s' for %s, replacing attribute.", value, key);
|
||||
r = rule_line_add_token(rule_line, TK_M_IMPORT_BUILTIN, op, value, UDEV_BUILTIN_CMD_TO_PTR(cmd));
|
||||
} else
|
||||
r = rule_line_add_token(rule_line, TK_M_IMPORT_PROGRAM, op, value, NULL);
|
||||
@ -940,7 +940,7 @@ static int parse_token(UdevRuleLine *rule_line, const char *key, char *attr, Ude
|
||||
check_value_format_and_warn(rule_line, key, value, true);
|
||||
r = rule_line_add_token(rule_line, TK_A_OWNER, op, value, NULL);
|
||||
} else {
|
||||
log_line_debug(rule_line, "User name resolution is disabled, ignoring %s=%s", key, value);
|
||||
log_line_debug(rule_line, "User name resolution is disabled, ignoring %s=\"%s\".", key, value);
|
||||
return 0;
|
||||
}
|
||||
} else if (streq(key, "GROUP")) {
|
||||
@ -968,7 +968,7 @@ static int parse_token(UdevRuleLine *rule_line, const char *key, char *attr, Ude
|
||||
check_value_format_and_warn(rule_line, key, value, true);
|
||||
r = rule_line_add_token(rule_line, TK_A_GROUP, op, value, NULL);
|
||||
} else {
|
||||
log_line_debug(rule_line, "Resolving group name is disabled, ignoring GROUP=\"%s\"", value);
|
||||
log_line_debug(rule_line, "Resolving group name is disabled, ignoring GROUP=\"%s\".", value);
|
||||
return 0;
|
||||
}
|
||||
} else if (streq(key, "MODE")) {
|
||||
@ -1013,7 +1013,7 @@ static int parse_token(UdevRuleLine *rule_line, const char *key, char *attr, Ude
|
||||
cmd = udev_builtin_lookup(value);
|
||||
if (cmd < 0)
|
||||
return log_line_error_errno(rule_line, SYNTHETIC_ERRNO(EINVAL),
|
||||
"Unknown builtin command '%s', ignoring", value);
|
||||
"Unknown builtin command '%s', ignoring.", value);
|
||||
r = rule_line_add_token(rule_line, TK_A_RUN_BUILTIN, op, value, UDEV_BUILTIN_CMD_TO_PTR(cmd));
|
||||
} else
|
||||
return log_line_invalid_attr(rule_line, key);
|
||||
@ -1043,7 +1043,7 @@ static int parse_token(UdevRuleLine *rule_line, const char *key, char *attr, Ude
|
||||
SET_FLAG(rule_line->type, LINE_HAS_LABEL, true);
|
||||
return 1;
|
||||
} else
|
||||
return log_line_error_errno(rule_line, SYNTHETIC_ERRNO(EINVAL), "Invalid key '%s'", key);
|
||||
return log_line_error_errno(rule_line, SYNTHETIC_ERRNO(EINVAL), "Invalid key '%s'.", key);
|
||||
if (r < 0)
|
||||
return log_oom();
|
||||
|
||||
@ -1274,7 +1274,7 @@ static void rule_resolve_goto(UdevRuleFile *rule_file) {
|
||||
}
|
||||
|
||||
if (!line->goto_line) {
|
||||
log_line_error(line, "GOTO=\"%s\" has no matching label, ignoring",
|
||||
log_line_error(line, "GOTO=\"%s\" has no matching label, ignoring.",
|
||||
line->goto_label);
|
||||
|
||||
SET_FLAG(line->type, LINE_HAS_GOTO, false);
|
||||
@ -1424,11 +1424,11 @@ static void udev_check_conflicts_duplicates(UdevRuleLine *line) {
|
||||
|
||||
if (new_duplicates) {
|
||||
duplicates = new_duplicates;
|
||||
log_line_warning(line, "duplicate expressions");
|
||||
log_line_warning(line, "duplicate expressions.");
|
||||
}
|
||||
if (new_conflicts) {
|
||||
conflicts = new_conflicts;
|
||||
log_line_error(line, "conflicting match expressions, the line has no effect");
|
||||
log_line_error(line, "conflicting match expressions, the line has no effect.");
|
||||
}
|
||||
if (conflicts && duplicates)
|
||||
return;
|
||||
@ -1544,7 +1544,7 @@ int udev_rules_parse_file(UdevRules *rules, const char *filename, bool extra_che
|
||||
}
|
||||
|
||||
if (ignore_line)
|
||||
log_file_error(rule_file, line_nr, "Line is too long, ignored");
|
||||
log_file_error(rule_file, line_nr, "Line is too long, ignored.");
|
||||
else if (len > 0)
|
||||
(void) rule_add_line(rule_file, line, line_nr, extra_checks);
|
||||
|
||||
@ -1554,7 +1554,7 @@ int udev_rules_parse_file(UdevRules *rules, const char *filename, bool extra_che
|
||||
|
||||
if (continuation)
|
||||
log_file_error(rule_file, line_nr,
|
||||
"Unexpected EOF after line continuation, line ignored");
|
||||
"Unexpected EOF after line continuation, line ignored.");
|
||||
|
||||
rule_resolve_goto(rule_file);
|
||||
|
||||
|
@ -122,7 +122,7 @@ static int verify_rules_file(UdevRules *rules, const char *fname) {
|
||||
unsigned mask = (1U << LOG_ERR) | (1U << LOG_WARNING);
|
||||
if (issues & mask)
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||
"%s: udev rules check failed", fname);
|
||||
"%s: udev rules check failed.", fname);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -215,7 +215,7 @@ int verify_main(int argc, char *argv[], void *userdata) {
|
||||
return log_error_errno(r, "Failed to enumerate rules files: %m");
|
||||
if (arg_root && strv_isempty(files))
|
||||
return log_error_errno(SYNTHETIC_ERRNO(ENOENT),
|
||||
"No rules files found in %s", arg_root);
|
||||
"No rules files found in %s.", arg_root);
|
||||
|
||||
return verify_rules(rules, files);
|
||||
}
|
||||
|
@ -168,16 +168,16 @@ assert_0 "${rules}"
|
||||
printf 'RUN+="/bin/true"%8176s\\\n #\n' ' ' ' ' >"${rules}"
|
||||
echo >>"${rules}"
|
||||
cat >"${exp}" <<EOF
|
||||
${rules}:5 Line is too long, ignored
|
||||
${rules}: udev rules check failed
|
||||
${rules}:5 Line is too long, ignored.
|
||||
${rules}: udev rules check failed.
|
||||
EOF
|
||||
cp "${workdir}/default_output_1_fail" "${exo}"
|
||||
assert_1 "${rules}"
|
||||
|
||||
printf '\\\n' >"${rules}"
|
||||
cat >"${exp}" <<EOF
|
||||
${rules}:1 Unexpected EOF after line continuation, line ignored
|
||||
${rules}: udev rules check failed
|
||||
${rules}:1 Unexpected EOF after line continuation, line ignored.
|
||||
${rules}: udev rules check failed.
|
||||
EOF
|
||||
cp "${workdir}/default_output_1_fail" "${exo}"
|
||||
assert_1 "${rules}"
|
||||
@ -191,7 +191,7 @@ test_syntax_error() {
|
||||
printf '%s\n' "${rule}" >"${rules}"
|
||||
cat >"${exp}" <<EOF
|
||||
${rules}:1 ${msg}
|
||||
${rules}: udev rules check failed
|
||||
${rules}: udev rules check failed.
|
||||
EOF
|
||||
cp "${workdir}/default_output_1_fail" "${exo}"
|
||||
assert_1 "${rules}"
|
||||
@ -273,12 +273,12 @@ test_syntax_error 'OWNER{a}="b"' 'Invalid attribute for OWNER.'
|
||||
test_syntax_error 'OWNER-="b"' 'Invalid operator for OWNER.'
|
||||
test_syntax_error 'OWNER!="b"' 'Invalid operator for OWNER.'
|
||||
test_syntax_error 'OWNER+="0"' "OWNER key takes '=' or ':=' operator, assuming '='."
|
||||
test_syntax_error 'OWNER=":nosuchuser:"' "Unknown user ':nosuchuser:', ignoring"
|
||||
test_syntax_error 'OWNER=":nosuchuser:"' "Unknown user ':nosuchuser:', ignoring."
|
||||
test_syntax_error 'GROUP{a}="b"' 'Invalid attribute for GROUP.'
|
||||
test_syntax_error 'GROUP-="b"' 'Invalid operator for GROUP.'
|
||||
test_syntax_error 'GROUP!="b"' 'Invalid operator for GROUP.'
|
||||
test_syntax_error 'GROUP+="0"' "GROUP key takes '=' or ':=' operator, assuming '='."
|
||||
test_syntax_error 'GROUP=":nosuchgroup:"' "Unknown group ':nosuchgroup:', ignoring"
|
||||
test_syntax_error 'GROUP=":nosuchgroup:"' "Unknown group ':nosuchgroup:', ignoring."
|
||||
test_syntax_error 'MODE{a}="b"' 'Invalid attribute for MODE.'
|
||||
test_syntax_error 'MODE-="b"' 'Invalid operator for MODE.'
|
||||
test_syntax_error 'MODE!="b"' 'Invalid operator for MODE.'
|
||||
@ -292,30 +292,30 @@ test_syntax_error 'SECLABEL{a}:="b"' "SECLABEL key takes '=' or '+=' operator, a
|
||||
test_syntax_error 'RUN=="b"' 'Invalid operator for RUN.'
|
||||
test_syntax_error 'RUN-="b"' 'Invalid operator for RUN.'
|
||||
test_syntax_error 'RUN="%"' 'Invalid value "%" for RUN (char 1: invalid substitution type), ignoring.'
|
||||
test_syntax_error 'RUN{builtin}+="foo"' "Unknown builtin command 'foo', ignoring"
|
||||
test_syntax_error 'RUN{builtin}+="foo"' "Unknown builtin command 'foo', ignoring."
|
||||
test_syntax_error 'GOTO{a}="b"' 'Invalid attribute for GOTO.'
|
||||
test_syntax_error 'GOTO=="b"' 'Invalid operator for GOTO.'
|
||||
test_syntax_error 'NAME="a", GOTO="b"' 'GOTO="b" has no matching label, ignoring'
|
||||
test_syntax_error 'NAME="a", GOTO="b"' 'GOTO="b" has no matching label, ignoring.'
|
||||
test_syntax_error 'GOTO="a", GOTO="b"
|
||||
LABEL="a"' 'Contains multiple GOTO keys, ignoring GOTO="b".'
|
||||
test_syntax_error 'LABEL{a}="b"' 'Invalid attribute for LABEL.'
|
||||
test_syntax_error 'LABEL=="b"' 'Invalid operator for LABEL.'
|
||||
test_syntax_error 'LABEL="b"' 'LABEL="b" is unused.'
|
||||
test_syntax_error 'a="b"' "Invalid key 'a'"
|
||||
test_syntax_error 'KERNEL=="", KERNEL=="?*", NAME="a"' 'conflicting match expressions, the line has no effect'
|
||||
test_syntax_error 'KERNEL=="abc", KERNEL!="abc", NAME="b"' 'conflicting match expressions, the line has no effect'
|
||||
test_syntax_error 'KERNEL=="|a|b", KERNEL!="b|a|", NAME="c"' 'conflicting match expressions, the line has no effect'
|
||||
test_syntax_error 'KERNEL=="a|b", KERNEL=="c|d|e", NAME="f"' 'conflicting match expressions, the line has no effect'
|
||||
test_syntax_error 'a="b"' "Invalid key 'a'."
|
||||
test_syntax_error 'KERNEL=="", KERNEL=="?*", NAME="a"' 'conflicting match expressions, the line has no effect.'
|
||||
test_syntax_error 'KERNEL=="abc", KERNEL!="abc", NAME="b"' 'conflicting match expressions, the line has no effect.'
|
||||
test_syntax_error 'KERNEL=="|a|b", KERNEL!="b|a|", NAME="c"' 'conflicting match expressions, the line has no effect.'
|
||||
test_syntax_error 'KERNEL=="a|b", KERNEL=="c|d|e", NAME="f"' 'conflicting match expressions, the line has no effect.'
|
||||
# shellcheck disable=SC2016
|
||||
test_syntax_error 'ENV{DISKSEQ}=="?*", ENV{DEVTYPE}!="partition", ENV{DISKSEQ}!="?*", ENV{ID_IGNORE_DISKSEQ}!="1", SYMLINK+="disk/by-diskseq/$env{DISKSEQ}"' \
|
||||
'conflicting match expressions, the line has no effect'
|
||||
test_syntax_error 'ACTION=="a*", ACTION=="bc*", NAME="d"' 'conflicting match expressions, the line has no effect'
|
||||
test_syntax_error 'ACTION=="a*|bc*", ACTION=="d*|ef*", NAME="g"' 'conflicting match expressions, the line has no effect'
|
||||
test_syntax_error 'KERNEL!="", KERNEL=="?*", NAME="a"' 'duplicate expressions'
|
||||
test_syntax_error 'KERNEL=="|a|b", KERNEL=="b|a|", NAME="c"' 'duplicate expressions'
|
||||
'conflicting match expressions, the line has no effect.'
|
||||
test_syntax_error 'ACTION=="a*", ACTION=="bc*", NAME="d"' 'conflicting match expressions, the line has no effect.'
|
||||
test_syntax_error 'ACTION=="a*|bc*", ACTION=="d*|ef*", NAME="g"' 'conflicting match expressions, the line has no effect.'
|
||||
test_syntax_error 'KERNEL!="", KERNEL=="?*", NAME="a"' 'duplicate expressions.'
|
||||
test_syntax_error 'KERNEL=="|a|b", KERNEL=="b|a|", NAME="c"' 'duplicate expressions.'
|
||||
# shellcheck disable=SC2016
|
||||
test_syntax_error 'ENV{DISKSEQ}=="?*", ENV{DEVTYPE}!="partition", ENV{DISKSEQ}=="?*", ENV{ID_IGNORE_DISKSEQ}!="1", SYMLINK+="disk/by-diskseq/$env{DISKSEQ}"' \
|
||||
'duplicate expressions'
|
||||
'duplicate expressions.'
|
||||
test_syntax_error ',ACTION=="a", NAME="b"' 'Stray leading comma.'
|
||||
test_syntax_error ' ,ACTION=="a", NAME="b"' 'Stray leading comma.'
|
||||
test_syntax_error ', ACTION=="a", NAME="b"' 'Stray leading comma.'
|
||||
@ -342,9 +342,9 @@ assert_0 "${rules}"
|
||||
|
||||
echo 'GOTO="a"' >"${rules}"
|
||||
cat >"${exp}" <<EOF
|
||||
${rules}:1 GOTO="a" has no matching label, ignoring
|
||||
${rules}:1 GOTO="a" has no matching label, ignoring.
|
||||
${rules}:1 The line has no effect any more, dropping.
|
||||
${rules}: udev rules check failed
|
||||
${rules}: udev rules check failed.
|
||||
EOF
|
||||
cp "${workdir}/default_output_1_fail" "${exo}"
|
||||
assert_1 "${rules}"
|
||||
@ -362,7 +362,7 @@ LABEL="b"
|
||||
EOF
|
||||
cat >"${exp}" <<EOF
|
||||
${rules}:3 LABEL="b" is unused.
|
||||
${rules}: udev rules check failed
|
||||
${rules}: udev rules check failed.
|
||||
EOF
|
||||
cp "${workdir}/default_output_1_fail" "${exo}"
|
||||
assert_1 "${rules}"
|
||||
@ -373,10 +373,10 @@ LABEL="a", LABEL="b"
|
||||
EOF
|
||||
cat >"${exp}" <<EOF
|
||||
${rules}:2 Contains multiple LABEL keys, ignoring LABEL="a".
|
||||
${rules}:1 GOTO="a" has no matching label, ignoring
|
||||
${rules}:1 GOTO="a" has no matching label, ignoring.
|
||||
${rules}:1 The line has no effect any more, dropping.
|
||||
${rules}:2 LABEL="b" is unused.
|
||||
${rules}: udev rules check failed
|
||||
${rules}: udev rules check failed.
|
||||
EOF
|
||||
cp "${workdir}/default_output_1_fail" "${exo}"
|
||||
assert_1 "${rules}"
|
||||
@ -385,9 +385,9 @@ cat >"${rules}" <<'EOF'
|
||||
KERNEL!="", KERNEL=="?*", KERNEL=="", NAME="a"
|
||||
EOF
|
||||
cat >"${exp}" <<EOF
|
||||
${rules}:1 duplicate expressions
|
||||
${rules}:1 conflicting match expressions, the line has no effect
|
||||
${rules}: udev rules check failed
|
||||
${rules}:1 duplicate expressions.
|
||||
${rules}:1 conflicting match expressions, the line has no effect.
|
||||
${rules}: udev rules check failed.
|
||||
EOF
|
||||
cp "${workdir}/default_output_1_fail" "${exo}"
|
||||
assert_1 "${rules}"
|
||||
@ -398,7 +398,7 @@ EOF
|
||||
cat >"${exp}" <<EOF
|
||||
${rules}:1 A comma between tokens is expected.
|
||||
${rules}:1 Whitespace between tokens is expected.
|
||||
${rules}: udev rules check failed
|
||||
${rules}: udev rules check failed.
|
||||
EOF
|
||||
cp "${workdir}/default_output_1_fail" "${exo}"
|
||||
assert_1 "${rules}"
|
||||
@ -409,7 +409,7 @@ EOF
|
||||
cat >"${exp}" <<EOF
|
||||
${rules}:1 Stray whitespace before comma.
|
||||
${rules}:1 Whitespace after comma is expected.
|
||||
${rules}: udev rules check failed
|
||||
${rules}: udev rules check failed.
|
||||
EOF
|
||||
cp "${workdir}/default_output_1_fail" "${exo}"
|
||||
assert_1 "${rules}"
|
||||
|
Loading…
Reference in New Issue
Block a user