From: Zbigniew Jędrzejewski-Szmek Date: Wed, 10 Dec 2025 14:33:41 +0000 (+0100) Subject: homectl: split out helper parse_auto_resize_mode_field X-Git-Tag: v260-rc1~391^2~8 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a161867b0017489d71bb561bc14cee53a46b92bd;p=thirdparty%2Fsystemd.git homectl: split out helper parse_auto_resize_mode_field --- diff --git a/src/home/homectl.c b/src/home/homectl.c index 66da4de34e5..aa6bbec1458 100644 --- a/src/home/homectl.c +++ b/src/home/homectl.c @@ -3357,6 +3357,22 @@ static int parse_nice_field(sd_json_variant **identity, const char *field, const return 0; } +static int parse_auto_resize_mode_field(sd_json_variant **identity, const char *field, const char *arg) { + int r; + + assert(identity); + assert(field); + + if (!isempty(arg)) { + r = auto_resize_mode_from_string(arg); + if (r < 0) + return log_error_errno(r, "Failed to parse %s parameter: %s", field, arg); + arg = auto_resize_mode_to_string(r); + } + + return parse_string_field(identity, field, arg); +} + static int parse_rlimit_field(sd_json_variant **identity, const char *field, const char *arg) { int r; @@ -4614,22 +4630,10 @@ static int parse_argv(int argc, char *argv[]) { break; case ARG_AUTO_RESIZE_MODE: - if (isempty(optarg)) { - r = drop_from_identity("autoResizeMode"); - if (r < 0) - return r; - - break; - } - - r = auto_resize_mode_from_string(optarg); - if (r < 0) - return log_error_errno(r, "Failed to parse --auto-resize-mode= argument: %s", optarg); - - r = sd_json_variant_set_field_string(match_identity ?: &arg_identity_extra, "autoResizeMode", auto_resize_mode_to_string(r)); + r = parse_auto_resize_mode_field(match_identity ?: &arg_identity_extra, + "autoResizeMode", optarg); if (r < 0) - return log_error_errno(r, "Failed to set autoResizeMode field: %m"); - + return r; break; case ARG_REBALANCE_WEIGHT: {