[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#34279: guix-install.sh: uses /bin/bash shebang
From: |
Ludovic Courtès |
Subject: |
bug#34279: guix-install.sh: uses /bin/bash shebang |
Date: |
Mon, 04 Feb 2019 22:26:03 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) |
Hi,
Claes Wallin (韋嘉誠) <address@hidden> skribis:
> This means ./guix-install.sh doesn't work on e.g. NixOS. :-)
>
> Please use /usr/bin/env bash.
/usr/bin/env wouldn’t work on Guix System by default. :-)
What about something like this:
diff --git a/etc/guix-install.sh b/etc/guix-install.sh
index 8eb5214049..dc8de2fe92 100755
--- a/etc/guix-install.sh
+++ b/etc/guix-install.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
# GNU Guix --- Functional package management for GNU
# Copyright © 2017 sharlatan <address@hidden>
# Copyright © 2018 Ricardo Wurmus <address@hidden>
@@ -19,6 +19,13 @@
# You should have received a copy of the GNU General Public License
# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+# We require Bash but for portability we'd rather not use /bin/bash or
+# /usr/bin/env in the shebang, hence this hack.
+if [ "x$BASH_VERSION" = "x" ]
+then
+ exec bash "$0" "$@"
+fi
+
set -e
[ "$UID" -eq 0 ] || { echo "This script must be run as root."; exit 1; }
Thanks,
Ludo’.