From patchwork Wed Jun 10 07:57:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Storm, Christian" X-Patchwork-Id: 1306626 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=googlegroups.com (client-ip=2a00:1450:4864:20::638; helo=mail-ej1-x638.google.com; envelope-from=swupdate+bncbdd6bwv65qpbboneql3qkgqen7yb3ba@googlegroups.com; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=siemens.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.a=rsa-sha256 header.s=20161025 header.b=kn4AH/kw; dkim-atps=neutral Received: from mail-ej1-x638.google.com (mail-ej1-x638.google.com [IPv6:2a00:1450:4864:20::638]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 49hfT91tn9z9sRW for ; Wed, 10 Jun 2020 17:56:45 +1000 (AEST) Received: by mail-ej1-x638.google.com with SMTP id s29sf501443ejm.23 for ; Wed, 10 Jun 2020 00:56:44 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1591775802; cv=pass; d=google.com; s=arc-20160816; b=u4VyISR0dQJ+fanA/8tPRDu0fRst1641KZo7IHv4ilZczQ7ODsZZIRnHx0ois1WGuB t+TIszqr+46M8siU28WTOs+1Q0Dry5SsPjWSkfmHJckLTFe6H0fhKiNtCpvk7NxYDKmu oTQV5zsFxW3Crtm2I2KJtMVjj24/uGDMHJ3e8sajIbksej8sxz9PH9SqZ4kngeJred+Q 5D92k962OfD8AVeXnUnNBt3uT907tbj0hxPecUOTqnoNT1+EuUkGRiuVKpWZCSfqExOg 250a7Js/w4Lwh0D1IKgX0+jteaJtRBev1dCuJJNYe7yD0nggs9D+gzSsOOuY6plJcNhm 5ZnQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:mime-version:message-id:date :subject:cc:to:from:sender:dkim-signature; bh=IeWczkljOiVWy8od5qXgdZpNebgcPR3ZjEk8buItxAk=; b=DfPPNJEbw5l8fQIKRvRCqmVYwbFxnZWml4eENCYcZFa41uGyQBNrEToxWiwD88TRxf meHx1rr0BSz4I/OfpMaAYzoL+ZoAbt0f/juOkhHeL2uT9AUFNxahNQGZc09jAz1J0gUn bO2BdoaSCe6MHqRwHVtXD97wQ9HGz5cRe4LaUq1EYnBiVEUS6nkH1DAYc7M+f/aBO8M9 yDV9K/NKBj0yJwlgaJ0u8EP4ghjQ3H2v3jesWA2yO8oK+JGxKFvoO9AZDo8Cc88BobYQ Qqsca6QiXwYY8ovwYIvt4c4l74eFwPCikF6ZfutO3lYVNAWaClOVczoH3naz+rO9yQVN QX6A== ARC-Authentication-Results: i=2; gmr-mx.google.com; spf=pass (google.com: domain of christian.storm@siemens.com designates 192.35.17.28 as permitted sender) smtp.mailfrom=christian.storm@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:mime-version :x-original-sender:x-original-authentication-results:precedence :mailing-list:list-id:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=IeWczkljOiVWy8od5qXgdZpNebgcPR3ZjEk8buItxAk=; b=kn4AH/kwzcyNTwV/ivkajGlsWK1k0379GGZ8H4kZw7LJM38fbXoiio+mHtMcRYrln9 qRu9qnkjAm2uCizFi3q78sheEzMUkdYpGbbAqB53Y6qOt//3SzHq/kwF5n4MEUrNUYRw Z9NzaJ7I8LBlUXjNto+w/gnYe6oQoKs83PdC1C1YTOJ35/LwIxC2QteztVapl6pCq9/2 v+nWUllFpCqwdNdUCGAKAJh2h6icKP0VXKKGWEAi4yNYCQ9R9qk5w5jw2yD8V4b16kHc 5io516ZAc4+oVRCfPc9hzkpqg3xOy/rvthJbVAlZSLeJV2rLi0go6YSjU1HdSmJkVRzg Jmgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=sender:x-gm-message-state:from:to:cc:subject:date:message-id :mime-version:x-original-sender:x-original-authentication-results :precedence:mailing-list:list-id:x-spam-checked-in-group:list-post :list-help:list-archive:list-subscribe:list-unsubscribe; bh=IeWczkljOiVWy8od5qXgdZpNebgcPR3ZjEk8buItxAk=; b=Ml9fV9+PRilrxhpvQawVEIj4TB5Ymj0qhrkmfAspXwfjLe+M6eBXMzP6FHbDDX2NFq XsxPR4K5npkRxWQb0aXJmn6U9iDmJJU6fFeIp/pvRxWMoOQ4mg02sjRbvpoLf1oioM4e 4S+OV2FVKtotfoU+jfx7VCHEvy6rxnkMOWq4nLXPNrNQ27z3pjg8SZOLDQQJJjIuH66M edVHHdLjm9VOi24atdNvnpRx6heVcrW9CCD0nKWzZZ+1+ysENPYZ2/rwobX8u0r7TdU9 xSqaWH6L9DpRE+TDuqVRsQhtvDtPVCg3MEo1bDcwcX6x5CQGRbIuXrV5oAMLgvL4bCyU eMwQ== Sender: swupdate@googlegroups.com X-Gm-Message-State: AOAM5319Rle0V7SMRkakEoI4XyslLnCwAXiFex5xXyka/G+uE8hsfpxy pxn07xZZtvpVNez+c2AH9Ws= X-Google-Smtp-Source: ABdhPJxwuPNI6xdaRdHX/wo4Q3hMMev09+QGB9CqcUKR7tZwYKu6P3imTZQlj8MzAMWbRZRo1ae+IQ== X-Received: by 2002:a17:906:b28e:: with SMTP id q14mr2138778ejz.484.1591775802101; Wed, 10 Jun 2020 00:56:42 -0700 (PDT) X-BeenThere: swupdate@googlegroups.com Received: by 2002:a17:906:8483:: with SMTP id m3ls10348780ejx.7.gmail; Wed, 10 Jun 2020 00:56:41 -0700 (PDT) X-Received: by 2002:a17:906:f49:: with SMTP id h9mr2288308ejj.155.1591775801147; Wed, 10 Jun 2020 00:56:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1591775801; cv=none; d=google.com; s=arc-20160816; b=iD0YmSdH+1ecxqhqJYmCvn3cUgUdcsuoA6qgPNDop0leguGKJJ3ibD9vPkWQ52Diia jT2ff4hioQt3YtMyu85zkZ5kBNqsko6Bd4QVwlhACaRRQfYoYBqvxMW66YnZ8E/frSYE MDbodTaprigZBSx7ZgcRORnxFRPZXJmeV2OmjP4ytjqyK0mRI1piqH1pkI8Y69m3YtEL 0DM+//sihLgnTp6H8cW5MWYURoBZsFQH4tcYzArPwHGFufkeuPMkkQhms4tYJ1y06Xfo Qwapiaw6pjyORveGC9gwol4YtjvObJpeermjF6bTZj4pGsG9dZJedvhvYYAwTb3TxZnl 6PBQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from; bh=fpjxMxjZPHc9nI+uld0i4rJOewcfbSDfdF9x1wCsfMY=; b=poP25V5kB79s3CBUlVb9L89y6s0WG7dTKnemKGYpfjlMDxVrIMfdGH5YoTU9jByPnP jYYUWdmrQW7I+B8UEg1bA9C6TMqXrlP9ALfU64LbvvfDl8WZXimkzY+pJGmC67DFiQFw v5knTrYMXdNEoPUGfs1ieIRzZ0f/sq/UuRZ7yCyt0KCelKWy0hFVo1+EDQeO4zV/Mzd7 iPOaAB3jCacDgL+DxkhPSXEZzVC8ppM0unhynmPhkwiBzybjoXLa83PDXXIPJDux+m8i RlTbEOl8Oi08tnCzxHrjkVpdPno+kFp4bP37QC8x82sOid//7UXQ9I4FfSXe4mQajzpz UdRw== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of christian.storm@siemens.com designates 192.35.17.28 as permitted sender) smtp.mailfrom=christian.storm@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: from goliath.siemens.de (goliath.siemens.de. [192.35.17.28]) by gmr-mx.google.com with ESMTPS id fx6si1124218ejb.0.2020.06.10.00.56.41 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 10 Jun 2020 00:56:41 -0700 (PDT) Received-SPF: pass (google.com: domain of christian.storm@siemens.com designates 192.35.17.28 as permitted sender) client-ip=192.35.17.28; Received: from mail1.siemens.de (mail1.siemens.de [139.23.33.14]) by goliath.siemens.de (8.15.2/8.15.2) with ESMTPS id 05A7ueOE022544 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 10 Jun 2020 09:56:40 +0200 Received: from MD1ZFJVC.ad001.siemens.net ([167.87.40.100]) by mail1.siemens.de (8.15.2/8.15.2) with ESMTP id 05A7ueZt015506; Wed, 10 Jun 2020 09:56:40 +0200 From: Christian Storm To: swupdate@googlegroups.com Cc: Christian Storm Subject: [swupdate] [PATCH] Consolidate error and help messages Date: Wed, 10 Jun 2020 09:57:17 +0200 Message-Id: <20200610075717.9385-1-christian.storm@siemens.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 X-Original-Sender: christian.storm@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of christian.storm@siemens.com designates 192.35.17.28 as permitted sender) smtp.mailfrom=christian.storm@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Precedence: list Mailing-list: list swupdate@googlegroups.com; contact swupdate+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: swupdate@googlegroups.com X-Google-Group-Id: 605343134186 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , Consolidate --help text to use stdout instead of stderr and prefix error messages (on stderr) with "Error: " for better readability. To the same end, remove the subsequent usage() output for some errors as this may be misguiding to a syntax error while it wasn't. Signed-off-by: Christian Storm Acked-by: Stefano Babic --- core/swupdate.c | 26 ++++++++++++-------------- suricatta/server_general.c | 2 +- suricatta/server_hawkbit.c | 2 +- suricatta/suricatta.c | 2 +- 4 files changed, 15 insertions(+), 17 deletions(-) diff --git a/core/swupdate.c b/core/swupdate.c index 74dfbbe..cc7e2d3 100644 --- a/core/swupdate.c +++ b/core/swupdate.c @@ -146,7 +146,7 @@ static void usage(char *programname) " -N, --no-downgrading : not install a release older as \n" " -R, --no-reinstalling : not install a release same as \n" " -M, --no-transaction-marker : disable setting bootloader transaction marker\n" - " -o, --output : saves the incoming stream\n" + " -o, --output : saves the incoming stream\n" " -v, --verbose : be verbose, set maximum loglevel\n" " --version : print SWUpdate version and exit\n" #ifdef CONFIG_HW_COMPATIBILITY @@ -700,7 +700,7 @@ int main(int argc, char **argv) if (read_module_settings(cfgfname, "globals", read_globals_settings, &swcfg)) { fprintf(stderr, - "Error parsing configuration file, exiting..\n"); + "Error parsing configuration file, exiting.\n"); exit(EXIT_FAILURE); } @@ -716,7 +716,7 @@ int main(int argc, char **argv) */ if (ret == -EINVAL) { fprintf(stderr, - "Error parsing configuration file, exiting..\n"); + "Error parsing configuration file, exiting.\n"); exit(EXIT_FAILURE); } } @@ -873,7 +873,8 @@ int main(int argc, char **argv) if (optind < argc) { /* SWUpdate has no non-option arguments, fail on them */ - usage(argv[0]); + fprintf(stderr, + "Error: Non-option or unrecognized argument(s) given, see --help.\n"); exit(EXIT_FAILURE); } @@ -883,28 +884,25 @@ int main(int argc, char **argv) */ if (public_key_mandatory && !strlen(swcfg.globals.publickeyfname)) { fprintf(stderr, - "swupdate built for signed image, provide a public key file\n"); - usage(argv[0]); + "Error: SWUpdate is built for signed images, provide a public key file.\n"); exit(EXIT_FAILURE); } if (opt_c && !opt_i) { fprintf(stderr, - "request check for local image, it requires -i\n"); - usage(argv[0]); + "Error: Checking local images requires -i .\n"); exit(EXIT_FAILURE); } if (opt_i && strlen(swcfg.output)) { fprintf(stderr, - "Output just from network - do you know cp ?\n"); - usage(argv[0]); + "Error: Use cp for -i -o .\n"); exit(EXIT_FAILURE); } #ifdef CONFIG_SURICATTA if (opt_u && (opt_c || opt_i)) { - fprintf(stderr, "invalid mode combination with suricatta.\n"); + fprintf(stderr, "Error: Invalid mode combination with suricatta.\n"); exit(EXIT_FAILURE); } #endif @@ -914,7 +912,7 @@ int main(int argc, char **argv) if (strlen(swcfg.globals.publickeyfname)) { if (swupdate_dgst_init(&swcfg, swcfg.globals.publickeyfname)) { fprintf(stderr, - "Crypto cannot be initialized\n"); + "Error: Crypto cannot be initialized.\n"); exit(EXIT_FAILURE); } } @@ -991,7 +989,7 @@ int main(int argc, char **argv) if (strlen(swcfg.globals.aeskeyfname)) { if (load_decryption_key(swcfg.globals.aeskeyfname)) { fprintf(stderr, - "Key file does not contain a valid AES key\n"); + "Error: Key file does not contain a valid AES key.\n"); exit(EXIT_FAILURE); } } @@ -1010,7 +1008,7 @@ int main(int argc, char **argv) if (opt_e) { if (parse_image_selector(software_select, &swcfg)) { - fprintf(stderr, "Incorrect select option format\n"); + fprintf(stderr, "Error: Incorrect select option format.\n"); exit(EXIT_FAILURE); } fprintf(stderr, "software set: %s mode: %s\n", diff --git a/suricatta/server_general.c b/suricatta/server_general.c index a099d68..5d63207 100644 --- a/suricatta/server_general.c +++ b/suricatta/server_general.c @@ -504,7 +504,7 @@ unsigned int server_get_polling_interval(void) void server_print_help(void) { fprintf( - stderr, + stdout, "\t -u, --url * Host and port of the server instance, " "e.g., localhost:8080\n" "\t -p, --polldelay Delay in seconds between two hawkBit " diff --git a/suricatta/server_hawkbit.c b/suricatta/server_hawkbit.c index a6ed5a3..29b1ca4 100644 --- a/suricatta/server_hawkbit.c +++ b/suricatta/server_hawkbit.c @@ -1565,7 +1565,7 @@ cleanup: void server_print_help(void) { fprintf( - stderr, + stdout, "\t -t, --tenant * Set hawkBit tenant ID for this device.\n" "\t -u, --url * Host and port of the hawkBit instance, " "e.g., localhost:8080\n" diff --git a/suricatta/suricatta.c b/suricatta/suricatta.c index cb7c799..ac3be89 100644 --- a/suricatta/suricatta.c +++ b/suricatta/suricatta.c @@ -32,7 +32,7 @@ static struct option long_options[] = { void suricatta_print_help(void) { fprintf( - stderr, + stdout, "\tsuricatta arguments (mandatory arguments are marked with '*'):\n" "\t -e, --enable Daemon enabled at startup (default).\n" "\t -d, --disable Daemon disabled at startup.\n"