Received: from griffin.geeknet.cz (griffin.geeknet.cz [94.142.237.48]) by nld3-dev1.alpinelinux.org (Postfix) with ESMTPS id 923FF780FEF for <~alpine/devel@lists.alpinelinux.org>; Thu, 30 Jun 2022 13:17:48 +0000 (UTC) Received: by griffin.geeknet.cz (OpenSMTPD) with ESMTP id 167a294c; Thu, 30 Jun 2022 15:17:47 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=jirutka.cz; h=subject:to :references:from:message-id:date:mime-version:in-reply-to :content-type:content-transfer-encoding; s=mail; bh=LjaJcX5AgJER CpQYpVwNirOov5s=; b=tqUdyyPtaUagsjMnzI7z2FbgEnbUUQSD18xOn7AHKXuG +q9foxx4hl5UKGS7HoZRasf37wzaIDOjYgk78YIlvdu94XtOJ7wwoK80JOQjW9CS X7DS6G5A3YTT5kibVgCZJIQDie6oCQLgIWYMxZo4REgpbT+RekOUf4DIYSn9Zn8= DomainKey-Signature: a=rsa-sha1; c=nofws; d=jirutka.cz; h=subject:to :references:from:message-id:date:mime-version:in-reply-to :content-type:content-transfer-encoding; q=dns; s=mail; b=uEf086 EcA5N3R9ax8oHKphNB8NZhBvnOS87EGkr/qOHzEJaBYM8dsjFiLXqUhDj2WJFGE0 cl4VogSryk39UTGk62oQtJ2xjEc4dO71+BQx/J5wjpRxOx4PXBYxwQt24kSYJBlJ +dqxqOvPAche99uq2Au36NRMZNpcOCe63PQv8= Received: by griffin.geeknet.cz (OpenSMTPD) with ESMTPSA id dc0176fa (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Thu, 30 Jun 2022 15:17:46 +0200 (CEST) Subject: Re: Fixing shell script libraries like /lib/libalpine.sh To: "Daniel F. Dickinson" , ~alpine/devel@lists.alpinelinux.org References: <4caa8c5f-7ebf-ad2f-0e92-29428785fe60@wildtechgarden.ca> From: Jakub Jirutka Openpgp: preference=signencrypt Autocrypt: addr=jakub@jirutka.cz; keydata= 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 Message-ID: <920d69d8-bf3e-0c98-4218-9fc8fa2fef16@jirutka.cz> Date: Thu, 30 Jun 2022 15:17:46 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <4caa8c5f-7ebf-ad2f-0e92-29428785fe60@wildtechgarden.ca> Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 8bit > 2. If you are not already using tools like shellcheck / shellfmt and or > shell unit tests in your CI, do you have objections to such being added? Every time someone opened a merge request in my projects to fix for “bugs” detected by shellcheck, the vast majority of them were completely unnecessary changes that at best only made the code less readable, at worst introduced bugs. Mostly done by people who have little knowledge of the shell and just blindly apply what shellcheck throws at them without understanding it. Shell is a very context-sensitive, ambiguous and messy “language”, which makes it extremely hard to create a reliable linter for it. That’s why shellcheck doesn’t and cannot work as good as linters for normal languages – you would need a deeper analysis than what shellcheck does. That said, shellcheck is undoubtedly useful for the author as an aid when writing the shell script, but not as an automated tool for enforcing generic set of rules. Jakub J. On 6/30/22 8:16 AM, Daniel F. Dickinson wrote: > Hello, > > I've noticed some issues with the Alpine shell script libraries (one > example below)[1] > > I'm new to Alpine but not to Linux, *BSD, or (way back) Ultrix, and have > not (yet) dug into the Alpine code base and infrastructure. (Although I > have my 'notes-to-self' documentation[2] that I intend (RSN...) to > integrate into the Wiki and have published on my website). > > My questions with respect to the issues mentioned are: > > 1. Do you prefer the GitLab merge request interface or the mailing list > for patches?[3] > > 2. If you are not already using tools like shellcheck / shellfmt and or > shell unit tests in your CI, do you have objections to such being added? > > I'm hoping to spend some time fixing this type of issue as they result > in annoying hiccups when trying to automate setup-alpine, and I'd like > that to work well. > > A final note: I've got some cloud-init image creation using Packer that > I soon intend to push to public repository, along with Terraform usage > of the same; is there interest in those here? I almost forgot; what is > the status the work on the 'tiny' cloud-init substitute or other > alternatives in Alpine? > > Regards, > > Daniel > > > [1]: > > # test the first argument against the remaining ones, return success on > a match > isin() { >     local _a=$1 _b >     shift >     for _b; do >         [ "$_a" = "$_b" ] && return 0 >     done >     return 1 > } > > _b is never assigned a value. This is why automating ntp setup fails > (specifically the following code in /sbin/setup-ntp) will never skip the > 'ask': > > while [ $# -eq 0 ] && ! isin "$resp" busybox openntpd chrony none abort; do >     ask "Which NTP client to run? ('busybox', 'openntpd', 'chrony' or > 'none')" chrony > done > > [2]: https://wildtechgarden.ca/deploy-admin/server-alpine-linux-docs4web/ > > [3]: I've been off in frontend-land for a while and am somewhat out of > sync with current systems development preferences. > > Speaking of which, I don't see at > https://useplaintext.email/#thunderbird how to limit the line length to > 72 characters as requested (or is this unnecessary due to things > Thunderbird does in background when sending plaintext?). > > I unfortunately need features of Thunderbird that aren't available in > what I preferred in the days before MS 365 and Gmail were what most of > the folks I needed to communicate with dependent on, which was Claws Mail. >