Re: [PATCH] linguas: Ensure that scripts runs from the directory that it resides

Daniel Kiper <[email protected]>
Newsgroups org.gnu.grub-devel
Message-ID <[email protected]>
On Wed, Nov 12, 2025 at 08:18:34PM -0600, Glenn Washburn wrote:
> On Wed, 12 Nov 2025 21:39:09 +0100 > Daniel Kiper <[email protected]> wrote:
> > On Sun, Nov 09, 2025 at 04:31:52PM -0600, Glenn Washburn wrote:
> > > The script assumes that it is run from the root of the source tree,
> > > which is where it is located. So this should be enforced to prevent
> > > accidental misuses.
> > >
> > > Signed-off-by: Glenn Washburn <[email protected]>
> > > ---
> > >  linguas.sh | 5 +++++
> > >  1 file changed, 5 insertions(+)
> > >
> > > diff --git a/linguas.sh b/linguas.sh
> > > index b95ad4f7d9c2..45cdf2ac14ac 100755
> > > --- a/linguas.sh
> > > +++ b/linguas.sh
> > > @@ -1,5 +1,10 @@
> > >  #!/bin/sh
> > >
> > > +SDIR=$(realpath -e "$0")
> >
> > SDIR=$(readlink -f "$0")
>
> I'm curious, why do you prefer this? On Debian they both come from the
> coreutils package. They both resolve symlinks, so functionally I
> believe they are the same. According to the Debian readlink man page,
> "Note realpath(1) is the preferred command to use for canonicalization
> functionality." I find the name a little more intuitive, as we want the
> real path and the argument might not be a link to be read, which is
> what readlink suggests to me. Is readlink an older util, and thus more
> widely supported?

When I was resolving the same problem years ago there wasn't such note
in the readlink(1) man. However, if it is there right now then I think
it makes more sense to use realpath instead. Though I think you should
mention in the commit message why you chose it instead of readlink.

> > > +SDIR=${SDIR%/*}
> >
> > SDIR=$(dirname "$SDIR")
>
> Also, why this is preferable? My guess is that it is more
> readable. I chose the pure shell approach because its one less exec and

Yep...

> external binary dependency. That syntax is supported on both sh and
> dash, so I expect wide compatibility.

I think it does not matter much here. However, if you prefer shell
approach please explain your choice in the commit message.

Daniel

_______________________________________________
Grub-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/grub-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.