summary refs log tree commit diff
path: root/etc/guix-install.sh
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2021-04-24 09:59:54 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2021-05-01 01:23:02 -0400
commit38aab0ea8b16373dcaa9976bfe82753ef8b5d2ac (patch)
tree0a1a143ffddced83515b8ef152c45de45c9e915e /etc/guix-install.sh
parent73b6660cd1c4f77132121ea9bce2672d108dfe22 (diff)
downloadguix-38aab0ea8b16373dcaa9976bfe82753ef8b5d2ac.tar.gz
guix-install.sh: Allow overriding the Guix binary source.
This is useful for example for testing release candidates not yet uploaded to
the FTP, or for testing manually downloaded images from the CI.

* etc/guix-install.sh (main)[GUIX_BINARY_FILE_NAME]: When this variable is
defined, use it as the file name of a Guix binary, instead of automatically
retrieving the latest archive from the FTP.
Diffstat (limited to 'etc/guix-install.sh')
-rwxr-xr-xetc/guix-install.sh14
1 files changed, 11 insertions, 3 deletions
diff --git a/etc/guix-install.sh b/etc/guix-install.sh
index 949ef7719f..168bf7234e 100755
--- a/etc/guix-install.sh
+++ b/etc/guix-install.sh
@@ -554,10 +554,18 @@ main()
     umask 0022
     tmp_path="$(mktemp -t -d guix.XXX)"
 
-    guix_get_bin_list "${GNU_URL}"
-    guix_get_bin "${GNU_URL}" "${BIN_VER}" "$tmp_path"
+    if [ -z "${GUIX_BINARY_FILE_NAME}" ]; then
+        guix_get_bin_list "${GNU_URL}"
+        guix_get_bin "${GNU_URL}" "${BIN_VER}" "$tmp_path"
+        GUIX_BINARY_FILE_NAME=${BIN_VER}.tar.xz
+    else
+        if ! [[ $GUIX_BINARY_FILE_NAME =~ $ARCH_OS ]]; then
+            _err "$ARCH_OS not in ${GUIX_BINARY_FILE_NAME}; aborting"
+        fi
+        _msg "Using manually provided binary ${GUIX_BINARY_FILE_NAME}"
+    fi
 
-    sys_create_store "${BIN_VER}.tar.xz" "${tmp_path}"
+    sys_create_store "${GUIX_BINARY_FILE_NAME}" "${tmp_path}"
     sys_create_build_user
     sys_enable_guix_daemon
     sys_authorize_build_farms