From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.sysutils.supervision.general/2372 Path: news.gmane.org!.POSTED!not-for-mail From: "Laurent Bercot" Newsgroups: gmane.comp.sysutils.supervision.general,gmane.comp.sysutils.skaware Subject: [announce] execline-2.4.0.0 Date: Sat, 31 Mar 2018 23:15:43 +0000 Message-ID: Reply-To: "Laurent Bercot" NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; format=flowed; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: blaine.gmane.org 1522538026 15227 195.159.176.226 (31 Mar 2018 23:13:46 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sat, 31 Mar 2018 23:13:46 +0000 (UTC) User-Agent: eM_Client/7.1.31849.0 To: "skaware@list.skarnet.org" , "supervision@list.skarnet.org" Original-X-From: supervision-return-1963-gcsg-supervision=m.gmane.org@list.skarnet.org Sun Apr 01 01:13:42 2018 Return-path: Envelope-to: gcsg-supervision@m.gmane.org Original-Received: from alyss.skarnet.org ([95.142.172.232]) by blaine.gmane.org with smtp (Exim 4.84_2) (envelope-from ) id 1f2Pgr-0003rM-SW for gcsg-supervision@m.gmane.org; Sun, 01 Apr 2018 01:13:41 +0200 Original-Received: (qmail 17112 invoked by uid 89); 31 Mar 2018 23:16:11 -0000 Mailing-List: contact supervision-help@list.skarnet.org; run by ezmlm Original-Sender: Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 17095 invoked from network); 31 Mar 2018 23:16:10 -0000 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedtgedrfeeigddukeegucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecupfgfoffgtffkveetuefngfdpqfgfvfenuceurghilhhouhhtmecufedttdenucenucfjughrpefhvffufffkrhgfgggtgfesthhqredttderjeenucfhrhhomhepfdfnrghurhgvnhhtuceuvghrtghothdfuceoshhkrgdqshhkrgifrghrvgesshhkrghrnhgvthdrohhrgheqnecuffhomhgrihhnpehskhgrrhhnvghtrdhorhhgnecurfgrrhgrmhepmhhouggvpehsmhhtphhouhhtnecuvehluhhsthgvrhfuihiivgeptd Xref: news.gmane.org gmane.comp.sysutils.supervision.general:2372 gmane.comp.sysutils.skaware:224 Archived-At: Hello, execline-2.4.0.0 is out. As you all know by now, the main obstacle to adoption of skaware by distributions and mainstream Unix folks is the user interface; so, the obvious next improvements to skarnet.org software is to provide interfaces people are comfortable with. This is true for s6 + s6-rc, but this is also true for execline. One of the main criticisms that execline gets is that for its purpose, i.e. light scripting and gluing components together, people are already used to the standard Unix shell, and have trouble wrapping their minds around a new scripting tool with a very different syntax. I am convinced that execline offers significant benefits over the shell in certain circumstances - in particular, it is much easier to autogenerate; still, I want to make it easier for regular shell users to approach and understand execline. So, with user-friendliness as a major goal, with version 2.4.0.0, some execline commands have changed names. Commands that provide equivalent functionality of a shell construct are now named after the shell's syntax for that construct. Specifically: background is now named & backtick is now named ` define is now named =3D dollarat is now named $@ elglob is now named * fdclose is now named >&- fdmove is now named >& fdswap is now named <> foreground is now named ; getpid is now named ! heredoc is now named << homeof is now named ~ if is now named && importas is now named $ pipeline is now named | redirfd is now named < I believe this renaming allows users coming from the shell to get acquainted with execline without changing too many of their habits and smoothly transition to a new approach to scripting. For instance, the examples/etc/execline-shell script now reads: #!/bin/execlineb -S0 ` -n home { && -nt { ` -n user { id -un } $ -u user user $ -D $user USER=20 USER < -w 2 /dev/null ~ ${USER} } echo / } $ -u home home $ -D $home HOME HOME tryexec { ${HOME}/.execline-shell $@ } /bin/sh $@ which indubitably mimics the readability of a shell script much more than the same script using the old execline command names ever did. An added benefit of this change is brevity. Where previous names of execline commands were verbose, and execline scripts could be long to type and annoying to read, the new names are very short, which allows execline to approach the terseness and reader-friendliness of the shell. For instance, one of the execline quines now reads as such: #!/bin/execlineb =3D e "#!/bin/execlineb =3D e $q${E}${q} env e=3D$e =3D q ${b}${q} =3D b ${b}${b} $ E e echo $e" env e=3D$e =3D q \" =3D b \\ $ E e echo $e which is as short as a quine will ever be, while definitely looking more like a shell script than quines for previous execline versions. Note that for execline, command brevity also means that you can fit longer scripts into the limits of a command line, so the new version allows you to write more featureful, more complete scripts without hitting execline's inherent limitations. The benefits are numerous. I sincerely hope this change will help smooth the learning curve of the execline syntax, and increase adoption of the language among newbies and die-hard Unix veterans alike. https://skarnet.org/software/execline/ git://git.skarnet.org/execline Enjoy, Bug-reports welcome. -- Laurent