From af2665866061c63ba63335b43aa6ff5102d4e492 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Wed, 28 Mar 2012 13:29:09 +0300 Subject: [PATCH] cli: return non-zero status on errors --- cli.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/cli.c b/cli.c index 196a83e..144cdde 100644 --- a/cli.c +++ b/cli.c @@ -258,6 +258,7 @@ static int package_cmd(int cmd, char *tuple) { struct uci_element *e = NULL; struct uci_ptr ptr; + int ret = 0; if (uci_lookup_ptr(ctx, &ptr, tuple, true) != UCI_OK) { cli_perror(); @@ -272,8 +273,10 @@ static int package_cmd(int cmd, char *tuple) case CMD_COMMIT: if (flags & CLI_FLAG_NOCOMMIT) return 0; - if (uci_commit(ctx, &ptr.p, false) != UCI_OK) + if (uci_commit(ctx, &ptr.p, false) != UCI_OK) { cli_perror(); + ret = 1; + } break; case CMD_EXPORT: uci_export(ctx, stdout, ptr.p, true); @@ -282,7 +285,7 @@ static int package_cmd(int cmd, char *tuple) if (!(ptr.flags & UCI_LOOKUP_COMPLETE)) { ctx->err = UCI_ERR_NOTFOUND; cli_perror(); - return 1; + ret = 1; } switch(e->type) { case UCI_TYPE_PACKAGE: @@ -301,8 +304,9 @@ static int package_cmd(int cmd, char *tuple) break; } - uci_unload(ctx, ptr.p); - return 0; + if (ptr.p) + uci_unload(ctx, ptr.p); + return ret; } static int uci_do_import(int argc, char **argv) -- 2.30.2