zsh-users
 help / color / mirror / code / Atom feed
From: Thorsten Kampe <thorsten@thorstenkampe.de>
To: zsh-users@zsh.org
Subject: Re: zsh portable script
Date: Wed, 21 Jul 2010 10:34:54 +0200	[thread overview]
Message-ID: <i26bg6$r80$1@dough.gmane.org> (raw)
In-Reply-To: <305645C3-6FF2-4D54-AC28-372D60283E07@free.fr>

* François Revol (Tue, 20 Jul 2010 16:07:32 +0200)
> Le 20 juil. 2010 à 15:53, Thorsten Kampe a écrit :
> > * Joke de Buhr (Mon, 12 Jul 2010 17:37:19 +0200)
> >> On Monday 12 July 2010 16:46:22 Atom Smasher wrote:
> >>> on freebsd, zsh installs as /usr/local/bin/zsh. on linux (and most
> >>> other systems?) it installs as /usr/bin/zsh.
> >>> 
> >>> what's the best way to make zsh script portable between linux and
> >>> freebsd?
> >>> 
> >>> i could start the script with:
> >>> 	#!/usr/bin/env zsh
> >>> 
> >>> or i could specify that the script be executed as:
> >>> 	zsh script
> >>> 
> >>> is there a better way?
> >> 
> >> Using env doesn't solve the problem either. There is no guarantee the "env" 
> >> program is installed under /usr/bin/env.
> > 
> > It does solve the problem that's why it's used in (shell) scripting[1]. 
> 
> No it does not.
> BeOS never had any /usr.
> Haiku doesn't either.

The question was "what's the best way to make zsh script portable 
between linux and freebsd?" Why would the original poster care about OSs 
which are either dead for ten years or haven't left alpha stage yet?

If you want to be generally "portable" then you wouldn't write a zsh 
script in the first place: "When portability is an issue: you can rely 
on the Bourne shell existing anywhere. Scripting languages like Perl and 
even the newer shells like bash and zsh are potentially unavailable" 
("From Bash to Z Shell" - Oliver Kiddle, Jerry Peek and Peter 
Stephenson)

Trying to create a script that would magically "run everywhere" is never 
going to work. For a "real life" description see here:
"While the transition to sh and general UNIX compatibility has been a 
bumpy ride, it has also been a tremendous learning experience. Creating 
a single script that runs on all of these platforms has been very tricky 
indeed, mainly because I simply don't have access to most of these 
operating systems! Thankfully, keychain users from around the globe do, 
and many have provided great assistance in identifying compatibility 
problems and submitting patches to fix them."[1]

All these compatibility changes come with a heavy price: they make the 
code much less readable (as described under "Shell compatibility 
fixes"[1])

The lesson here is: if you want a Zsh script that runs on the major 
Linux distributions and on FreeBSD then create one that does exactly 
that. Don't try to "over-engineer" to make it run everywhere if you 
don't have the ressources (like lots of contributors) and especially: 
dont't try to make it run on a platform you don't have access to (and on 
which the script is never supposed to run, anyway).


Thorsten
[1] http://www.gentoo.org/doc/en/articles/openssh-key-management-p3.xml


  reply	other threads:[~2010-07-21  8:35 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-12 14:46 Atom Smasher
2010-07-12 15:35 ` Sebastian Stark
2010-07-12 16:10   ` Joke de Buhr
2010-07-12 16:17   ` Vincent Lefevre
2010-07-12 15:37 ` Joke de Buhr
2010-07-12 15:45   ` Joke de Buhr
2010-07-12 16:01     ` Frank Terbeck
2010-07-12 16:15     ` Vincent Lefevre
2010-07-12 16:18       ` Vincent Lefevre
2010-07-12 16:31         ` Joke de Buhr
2010-07-12 16:43           ` Vincent Lefevre
2010-07-12 16:22       ` Sebastian Stark
2010-07-12 16:39         ` Vincent Lefevre
2010-07-12 16:47           ` Frank Terbeck
2010-07-13 13:02       ` Atom Smasher
2010-07-13 14:29         ` Benjamin R. Haskell
2010-07-13 15:28           ` Atom Smasher
2010-07-13 17:01             ` Benjamin R. Haskell
2010-07-14  1:11               ` Atom Smasher
2010-07-14 11:45           ` Atom Smasher
2010-07-14 15:00             ` Atom Smasher
2010-07-13 13:43   ` François Revol
2010-07-20 14:01     ` Thorsten Kampe
2010-07-20 14:13       ` François Revol
2010-07-20 13:53   ` Thorsten Kampe
2010-07-20 14:07     ` François Revol
2010-07-21  8:34       ` Thorsten Kampe [this message]
2010-07-12 15:37 ` Vincent Lefevre
2010-07-12 16:06 ` Peter Stephenson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='i26bg6$r80$1@dough.gmane.org' \
    --to=thorsten@thorstenkampe.de \
    --cc=zsh-users@zsh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).