ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Alan BRASLAU <alan.braslau@cea.fr>
To: mojca.miklavec.lists@gmail.com
Cc: mailing list for ConTeXt users <ntg-context@ntg.nl>
Subject: Re: Dash equivalent of $BASH_SOURCE (for setuptex)
Date: Wed, 21 Nov 2012 18:35:31 +0100	[thread overview]
Message-ID: <20121121183531.40d0959d@iram-hb-003386.extra.cea.fr> (raw)
In-Reply-To: <CALBOmsa7YfUjVDU4v=yJ+mo4K9yhZzLy0ydjbukv30J4hTmncA@mail.gmail.com>

Mojca,

I'm not sure that I understand the question.
1. dash (Debian version of the real 100% posix-compatible Borne shell)
but also /bin/sh on freebsd and other Unixes (BSD, sysV or POSIX).
It is the "least common denominator" for shell scripts on most (if not
all) unix-like systems, as far as I know.
2. $0 will give the the path of the script, unless it is called
as ./script or script (in the current directory). In this case it
will probably be "./script" or by "pathtoscript/script" in which case
it will return "pathtoscript/script". The current directory can then be
found by `pwd` or $PWD
3 Sourcing the script (not calling it as an executable) as
"source script" or ". script" will return as $0 "/bin/bash" or
"/usr/local/bin/bash" or "/bin/sh" or whatever shell is in use.
This is your problem, I believe.

There does not seem to be a way to determine the path to a script
under a Borne shell if the script is SOURCED and not EXECUTED.
Of course, a script that is executed runs a sub-shell and so this
cannot be used to set variables, even environmental variables, for the
calling shell.

Alan




On Wed, 21 Nov 2012 12:56:54 +0100
Mojca Miklavec <mojca.miklavec.lists@gmail.com> wrote:

> Hi everyone,
> 
> Hans wrote me the following, but I'm unable to figure it out myself.
> The script "setuptex" (which is in fact not urgently needed as one can
> just as well export the right path, but it comes in handy) can be used
> in two ways:
>     (a) . /path/to/context/tex/setuptex
>     (b) . /path/to/context/tex/setuptex /path/to/context/tex
> The first approach only works if the shell interpreting setuptex knows
> where the sourced script is located.
> 
> Currently the script uses the following code and works in Bash, KSH
> (and maybe some other shells as well, but I'm not sure which ones).
> 
> if [ z"$BASH_SOURCE" != z ]; then
>   SCRIPTPATH="$BASH_SOURCE"
> elif [ z"$KSH_VERSION" != z ]; then
>   SCRIPTPATH="${.sh.file}"
> else
>   SCRIPTPATH="$0"
> fi
> 
> Hans had problems with Dash, however, I have no clue how to enable (a)
> in Dash. The (b) approach always works though, so in the worst case
> the answer to Hans would be "provide the path to your tex root, or
> write your own script with hardcoded path ;)", but if anyone has any
> clue if finding path to the executed script is possible in Dash or in
> any other POSIX-compatible way, please let me know.
> 
> Mojca
> 
> On Mon, Nov 19, 2012 at 10:31 AM, Hans Hagen wrote:
> > Hi Mojca,
> >
> > One of the things you need to look into is the first-setup and
> > setup tex scripts (just look at the dash issues thread) .. i have
> > the impression that the setuptex script doesn't find its root (own)
> > under dash because it has different $0 handling (dash is the debian
> > variant of bash, so we're talking of debian installations)
> >
> > Hans

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


  reply	other threads:[~2012-11-21 17:35 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-21 11:56 Mojca Miklavec
2012-11-21 17:35 ` Alan BRASLAU [this message]
2012-11-21 18:45   ` Mojca Miklavec
2012-11-21 19:28     ` Peter Münster
2012-11-21 21:05       ` Mojca Miklavec
2012-11-22  9:18       ` Hans Hagen
2012-11-22  9:21         ` Taco Hoekwater
2012-11-22  9:39           ` Alan BRASLAU
2012-11-21 18:12 ` Peter Münster

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=20121121183531.40d0959d@iram-hb-003386.extra.cea.fr \
    --to=alan.braslau@cea.fr \
    --cc=mojca.miklavec.lists@gmail.com \
    --cc=ntg-context@ntg.nl \
    /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.
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).