about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--scripts/nix-profile.sh.in11
1 files changed, 10 insertions, 1 deletions
diff --git a/scripts/nix-profile.sh.in b/scripts/nix-profile.sh.in
index 5d682fc51a59..7dd7968c314a 100644
--- a/scripts/nix-profile.sh.in
+++ b/scripts/nix-profile.sh.in
@@ -1,4 +1,4 @@
-if test -n "$HOME"; then
+if [ -n "$HOME" ]; then
     NIX_LINK="$HOME/.nix-profile"
 
     # Set the default profile.
@@ -19,4 +19,13 @@ if test -n "$HOME"; then
     # <nixpkgs> paths work when the user has fetched the Nixpkgs
     # channel.
     export NIX_PATH=${NIX_PATH:+$NIX_PATH:}nixpkgs=$HOME/.nix-defexpr/channels/nixpkgs
+
+    # Set $SSL_CERT_FILE so that Nixpkgs applications like curl work.
+    if [ -e /etc/ssl/certs/ca-bundle.crt ]; then # Fedora, NixOS
+        export SSL_CERT_FILE=/etc/ssl/certs/ca-bundle.crt
+    elif [ -e /etc/ssl/certs/ca-certificates.crt ]; then # Ubuntu, Debian
+        export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
+    elif [ -e "$NIX_LINK/etc/ca-bundle.crt" ]; then # fall back to Nix profile
+        export SSL_CERT_FILE="$NIX_LINK/etc/ca-bundle.crt"
+    fi
 fi