From patchwork Tue Oct 17 14:06:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefano Babic X-Patchwork-Id: 1850251 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.a=rsa-sha256 header.s=20230601 header.b=D4DhthAU; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=googlegroups.com (client-ip=2a00:1450:4864:20::237; helo=mail-lj1-x237.google.com; envelope-from=swupdate+bncbaabbbvkxkuqmgqe4r2pgji@googlegroups.com; receiver=patchwork.ozlabs.org) Received: from mail-lj1-x237.google.com (mail-lj1-x237.google.com [IPv6:2a00:1450:4864:20::237]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4S8wld14ghz20d4 for ; Wed, 18 Oct 2023 01:07:08 +1100 (AEDT) Received: by mail-lj1-x237.google.com with SMTP id 38308e7fff4ca-2c503af866dsf44701481fa.2 for ; Tue, 17 Oct 2023 07:07:08 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1697551623; cv=pass; d=google.com; s=arc-20160816; b=xxm3ZrQBd1Fkkl0d9pCzKIqr4BPgzk9fxBbveWgm5/Fox7ftLxLSdxkPJjjna3LpkK D5BRMny9uYn2udt8LHshJbXCg9y269IEyNsh45/5nhlmdYqYfKP27hxwxLEacxvWeF8i /X73NNj17NcX1rYIeXcLaI+ixN2Ir1jmrgJnsMNiRt3ChA5SZQCOhn7MzZeR8kqYEswY 9c6DjuZnSvKxDmorOwItVbOAC9b0pziCX6HGlPiZ9C5Ap/eHZSeci3viEr3v8TtuzFeZ KBYiDtgESxuG83L94TzjAuS1nbhrBr7W9FkhJ4NU//URrCysAVRJwLxn5p3HNWyhtROy DO1w== 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:ui-outboundreport:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from:sender :dkim-signature; bh=3JjR1STRYX3VwWsmnGmBeL1oHO3PmgekwnfyyhjiaS8=; fh=TiEWcqMcKpHk5s7uErzpntoONrNfOXwKpI5P8bIlggk=; b=u6EIIX/GKr70Tg79KaoL6DzXbNt/jhmfwO4o3NqNco51Txfyk2lqYAUALzWmARZUez uJCar4bkgnOQeVbEn+Em+7umvb7GD4DvukqLAiPvsRGPM9/Ub8vifScxayoGEgH8h/Hg +l1A7zMNgnzhJNsbdXRntWh1KqAtdi0hJ6nmv06jGAnpWK47IGaV0HVvzpABvrghVc3S pc4qpUONleH93/BhinH/AhDEfuggtSI0CiMJ/mOG2mqa5x7KZuG2IBT5WWWmrWKFWwbd deJHb7web8K6yjV5idEydnt1qBnPpNlXxNj9y7Q29NfWni18B0D4lmr/z0G+hyAveccy qgUQ== ARC-Authentication-Results: i=2; gmr-mx.google.com; spf=pass (google.com: domain of stefano.babic@swupdate.org designates 217.72.192.73 as permitted sender) smtp.mailfrom=stefano.babic@swupdate.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1697551623; x=1698156423; darn=patchwork.ozlabs.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-authentication-results :x-original-sender:ui-outboundreport:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:sender:from:to:cc :subject:date:message-id:reply-to; bh=3JjR1STRYX3VwWsmnGmBeL1oHO3PmgekwnfyyhjiaS8=; b=D4DhthAUYXmdYiIRVh9dgo/v2A4tQncEGfwX70QIvWPTNSQcQ/RLRuxbcIHzGRIauW L48MzahmEYjq1h5BfLc7y7Gj/NFyq+qsCXV6DDx7VS0wGRTkYPrNL4FWsCgRIcpFLS9J 7unTVVlLO9J0X4Y5xPxwL8f6PP4lxID+cQ3k5Jh9PqDUH12DOVUbtvutKDjjpyS34vLx kYq3pp6+iCZ8kNnYH1y16tEKRrfnG3Vv+LzQ7aJc/1Nd6I5HsO1WpV8GSq/mzNWEvvPi VxKVtvi+n7EJq6jcXLr1qtD1K356BYNy1XyqS2PrXOISi2pXnw4e9GXjQA8x+z7LjbK6 ZKGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697551623; x=1698156423; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender :ui-outboundreport:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:x-beenthere:x-gm-message-state:sender:from :to:cc:subject:date:message-id:reply-to; bh=3JjR1STRYX3VwWsmnGmBeL1oHO3PmgekwnfyyhjiaS8=; b=hqAiYSXju2jbppACLOoSeHKn76vNJkLkLkgUqKPcydZRAq8LtmmtU/06fE4EmFNxjd 56f4arI4l9AwdH/75unSKdi1dcL6mh9LShSTzflPI83wrBPrjoVba+KLwt/1R3xclD15 qRP1M9Ia5x08T5Xka4MlCqd29isKlyXP/2Me9QTD2BgjG/yCK7mxpl2XpzitbYRKeoOK iMeJUFT/B/JzzZasjncngX40Gv0ycf1Ivt78hKcAmVKw/3amB2GL2Lsc3TfgkebSpBsr /eHguZGHGclQ2cpqtpRVY7ureVsDQLdqfgZ0W7tP65fc2GT5VpRtOeGX65Cgkknqe7uT C2AA== Sender: swupdate@googlegroups.com X-Gm-Message-State: AOJu0YwLZW+jBhEf1AVrKJTKOtY4P/PZTO1NjlKhNrYT+YleBOrMQg4N QVmsOD52MYh7UXaHoeR4crk= X-Google-Smtp-Source: AGHT+IE6IGgokhDO49Wap7uSMsQYoQa+SCYlRDrRAn33PvdB8n3FDxz7YkaPQXdO2Bl9ByVD5GlkDA== X-Received: by 2002:a2e:b52a:0:b0:2c5:1ad0:c318 with SMTP id z10-20020a2eb52a000000b002c51ad0c318mr1576592ljm.44.1697551623312; Tue, 17 Oct 2023 07:07:03 -0700 (PDT) X-BeenThere: swupdate@googlegroups.com Received: by 2002:a2e:720a:0:b0:2be:574a:3b1b with SMTP id n10-20020a2e720a000000b002be574a3b1bls1719313ljc.0.-pod-prod-05-eu; Tue, 17 Oct 2023 07:07:01 -0700 (PDT) X-Received: by 2002:a2e:b8cd:0:b0:2c5:72e:6ff3 with SMTP id s13-20020a2eb8cd000000b002c5072e6ff3mr1827599ljp.37.1697551621662; Tue, 17 Oct 2023 07:07:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697551621; cv=none; d=google.com; s=arc-20160816; b=PYRU3BqAzKLQCgJ/Mpq5Nf2+u4fv99JVfVA4S2GMkzFztGK6JeCL4fBIyUNzQunrTM kuScEDcmeZV3qOP0YO2S1UAVQg4eQFh7q9/2tTrYNyiF5Rkp6evq63uvrTmVPj050Yoe g6ueYKe1nVguYM6b6yz31Yu3TPazMOqKbOOPGskF3lrjFf1yecvUvGW8psDHXqogQ/On z645RnaMmgD3UOtBQwDvs46HbUi8O4Tl7JE1/4xr6x1/dnbJ1/QQhUfjtwL0F1+BZdS5 lZEiKYTsqUFJlNenuPzYVehbDbw02OL0aBkOHIPRJmukNM48IKsTh+8usVIIcejdtrea biSg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=ui-outboundreport:content-transfer-encoding:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from; bh=PgJgyjkWqXLzINcmPtFcw01R75P9u+yKE2B2voHn80I=; fh=TiEWcqMcKpHk5s7uErzpntoONrNfOXwKpI5P8bIlggk=; b=Nhdx1x08NYkAGdCBazyoK5tZ2TEPMaYBmIqcAQ6vF5eR0dqh9otHy+/osI/VvqU80t omfWNKGjS5s4cBypSDgvGNdsuPy2DcSx+5Dn8A8vrnuNatRru8TwJQ5PcjFTPu2UpuiE VQvOr7/zhx9ZVK/kP+NsJHrVeU7a+JrcUFiA3ux9nbW8js6oAxSd54WmtKxsm9WZIuiI 0qweGHcZHSk8ZaPFg2DCCuDzXQK9uZAtS915MDgcw7QOV2TPaQXdmfva+GvkuTSl/dvE L7xFmGlBcKa/Q7e67n8rjri3PVd4QyeadlvU0OQyYiyyYqsZ04C/v/5fa+kBA99XySKp ebLA== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of stefano.babic@swupdate.org designates 217.72.192.73 as permitted sender) smtp.mailfrom=stefano.babic@swupdate.org Received: from mout.kundenserver.de (mout.kundenserver.de. [217.72.192.73]) by gmr-mx.google.com with ESMTPS id t11-20020a1c770b000000b0040476a42269si62357wmi.2.2023.10.17.07.07.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Oct 2023 07:07:01 -0700 (PDT) Received-SPF: pass (google.com: domain of stefano.babic@swupdate.org designates 217.72.192.73 as permitted sender) client-ip=217.72.192.73; Received: from paperino.fritz.box ([88.217.136.221]) by mrelayeu.kundenserver.de (mreue108 [213.165.67.113]) with ESMTPSA (Nemesis) id 1MLz7f-1rAh760tgv-00Hykg; Tue, 17 Oct 2023 16:07:01 +0200 From: Stefano Babic To: swupdate@googlegroups.com Cc: Stefano Babic Subject: [swupdate] [PATCH V2 10/11] swupdate-progress: parse if reboot is disabled Date: Tue, 17 Oct 2023 16:06:56 +0200 Message-Id: <20231017140657.95860-11-stefano.babic@swupdate.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231017140657.95860-1-stefano.babic@swupdate.org> References: <20231017140657.95860-1-stefano.babic@swupdate.org> MIME-Version: 1.0 X-Provags-ID: V03:K1:lLU4yaQPXzbgtRyGQC/NhDfTIvM600pnYyM267KT3D32b/XShQ7 iuFl9jjCMFoKvUW/YCNe3pGRyimieLvUDPIwSpqaRiAQf8H49l6eS6z2FDl3eqW70+7KmGa 8WKtXZmzIJKoB8nuvjt8GtXSqYlD8qCoWPrUKhFeQZeggFWB2oA0/zA96HeXpDb3J7ucZ50 bOMWXk+tMPxrSJJK8OvuQ== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:39HmcdVks+E=;2F5PCGCfC/sQzX+1SzLpv8AKqCq 0CCqYiN0JYre7AHlt/yrYjET8N599OxhbjRh8+AOI+9RzY4mLraV8808Mo+Jxrd5FVoCMO9du r3GziUgnLCRlWmRZP1Blo/r/bJgdWCPX2OqV3D68PLC7exQxT6DzwSd+Z6ytaXGuXRwT4h9YT zJAERIDghITnos3AzuAFkWhuFycjA94YmiOapRoJvyEqzmvPSEe8vaPYfit9BF5aMMB57n3Nk eObSbcd3GMrylSsvpIHtMWwdotUeqb/j3NojPqSws1TgwUrOKNqOjOnsFFJdRXaN10rcpEdo3 khhL+nM4CupwDBgwoWsnXU4CwFvYKQ5mSHYnIHTR74DTet3q93I695q2A8QC9XHFaY4WahHNS IjqvHzRtXH2KmUCK2YqjaNhirDwj6CgGaZJvjHy4KY+e6Ym8zNeRhVauYyxLCtYLFAKvZqdgb 248HYg6tPqV21EoMdwjpreyoBoy72JAJryncUf20BVcQ4nOahtzkn9m7gdAO3c6cHz8TcNkgj DrReglFjufOjrAcViJ0Khp7/3jXdRP+Tc/IsLw6wvbizTAgb6G8LOuKXK2nNFKYz3/YAKksIj /mSxDEyKaSqVIhHrVTW2dab4rH80tW9UgVJRN8PvQmjtqbsu0FnPYGfs4usWYkjgYxQIA0TWn BxPhni2aeZic/Ku8z2+ORoziEHQhfd+pPrmQBueeXEA4QtRIqu9SXUIdMDFBtvmYDg6ffneHX G3rozRn2vyCE3rzYj5lo7nnscxPHVv7gzaVOURp75BcadVwtgi6vfbGa9lVctK6tw+1Mqy9gu u45hnkMdcAyjbWGcOnTTG0zOQcLayFCLgqx2slWrQknFBT6/CgyOZRbtwt+kZ0D7QrIFnhTc9 Fo3eUgQSl7+RT5wCPM4F/AMLBhlnV29hCIGQ= X-Original-Sender: stefano.babic@swupdate.org X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of stefano.babic@swupdate.org designates 217.72.192.73 as permitted sender) smtp.mailfrom=stefano.babic@swupdate.org 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: , The attribute (boolean) "reboot" can be set in sw-description to disable a reboot for a single update. This information is just sent via the progress interface into the info message. Check if "no-reboot" is present and disable a reboot for the running update. Signed-off-by: Stefano Babic --- tools/swupdate-progress.c | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/tools/swupdate-progress.c b/tools/swupdate-progress.c index cba497a7..48a44481 100644 --- a/tools/swupdate-progress.c +++ b/tools/swupdate-progress.c @@ -233,6 +233,7 @@ int main(int argc, char **argv) int c; char *script = NULL; bool wait_update = true; + bool disable_reboot = false; /* Process options with getopt */ while ((c = getopt_long(argc, argv, "cwprhs:e:q", @@ -321,7 +322,11 @@ int main(int argc, char **argv) fprintf(stdout, "LOCAL\n\n"); break; } + /* + * Reset per update variables + */ curstep = 0; + disable_reboot = false; wait_update = false; } } @@ -330,11 +335,30 @@ int main(int argc, char **argv) * Be sure that string in message are Null terminated */ if (msg.infolen > 0) { + char *reboot_mode; + int n, cause; + if (msg.infolen >= sizeof(msg.info) - 1) { msg.infolen = sizeof(msg.info) - 1; } msg.info[msg.infolen] = '\0'; - fprintf(stdout, "INFO : %s\r", msg.info); + fprintf(stdout, "INFO : %s\n", msg.info); + + /* + * Check for no-reboot mode + * Just do a simple parsing for now. If more messages + * will be added, JSON lib should be linked. + */ + n = sscanf(msg.info, "{\"%d\": { \"reboot-mode\" : \"%m[-a-z]\"}}", + &cause, &reboot_mode); + if (n == 2) { + if (cause == CAUSE_REBOOT_MODE) { + if (!strcmp(reboot_mode, "no-reboot")) { + disable_reboot = true; + } + } + free(reboot_mode); + } } msg.cur_image[sizeof(msg.cur_image) - 1] = '\0'; @@ -391,7 +415,7 @@ int main(int argc, char **argv) if (psplash_ok) psplash_progress(psplash_pipe_path, &msg); psplash_ok = 0; - if ((msg.status == SUCCESS) && (msg.cur_step > 0) && opt_r) { + if ((msg.status == SUCCESS) && (msg.cur_step > 0) && opt_r && !disable_reboot) { reboot_device(); } #else @@ -420,7 +444,7 @@ int main(int argc, char **argv) if (psplash_ok) psplash_progress(psplash_pipe_path, &msg); psplash_ok = 0; - if (opt_r && strcasestr(msg.info, "firmware")) { + if (opt_r && !disable_reboot && strcasestr(msg.info, "firmware")) { reboot_device(); break; }