Re: [PATCH] Improve portability of pgweb/load_initial_data.sh - Mailing list pgsql-www

From Magnus Hagander
Subject Re: [PATCH] Improve portability of pgweb/load_initial_data.sh
Date
Msg-id CABUevEz5X8qSCNEveNOU19Gy3FcOXdRgpP=Z33KUbDw=DNs_cA@mail.gmail.com
Whole thread Raw
In response to [PATCH] Improve portability of pgweb/load_initial_data.sh  (Nils <nils@nilsand.re>)
Responses Re: [PATCH] Improve portability of pgweb/load_initial_data.sh  (Nils Andre <nils@nilsand.re>)
List pgsql-www
Hi!

Yeah, I think the fact that it says bash is just a "knee-jerk default" and not that it ever did either. So I have no problem changing that to sh. I'm a bit curious though, as to in which scenario this actually causes a problem?

The second change I'm less sure about. There are many different things you could change to break a script. This is one of them. You could change PATH, or you could replace "find" or "xargs" with commands that don't work the same way. CDPATH is not a variable that should, I believe, ever be exported into non-interactive scripts in the first place.

//Magnus

On Sun, Nov 7, 2021 at 5:49 PM Nils <nils@nilsand.re> wrote:
The shell script doesn't use bash extensions and bash may not be
available on all systems at that location.

If CDPATH is set, in certain cases, the call to cd can result in
unwanted behaviour.
---
 pgweb/load_initial_data.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pgweb/load_initial_data.sh b/pgweb/load_initial_data.sh
index fb16e70c..c419f298 100755
--- a/pgweb/load_initial_data.sh
+++ b/pgweb/load_initial_data.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh

 # We keep this in a separate script because using initial_data.xxx in django will overwrite
 # critical data in the database when running a 'syncdb'. We'd like to keep the ability to
@@ -8,7 +8,7 @@ echo WARNING: this may overwrite some data in the database with an initial set o
 echo 'Are you sure you want this (answer "yes" to overwrite)'
 read R

-cd $(dirname $0)
+CDPATH= cd $(dirname $0)

 if [ "$R" == "yes" ]; then
    find . -name data.json | xargs ../manage.py loaddata
--
2.31.1





--

pgsql-www by date:

Previous
From: Nils
Date:
Subject: [PATCH] Fix inaccuracies in documentation
Next
From: Magnus Hagander
Date:
Subject: Re: [PATCH] Fix inaccuracies in documentation