From f7627194db4c20f862737eba826783975266dde1 Mon Sep 17 00:00:00 2001 From: "Andrew R. M" Date: Fri, 4 Apr 2025 17:43:06 +0000 Subject: [PATCH] Support nix XDG pathing --- install.sh | 12 ++++++++++-- installers/install-nix-packages-flake.sh | 2 ++ installers/install-nix.sh | 2 ++ sh/.profile | 2 ++ 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index f5640c1..a5321ff 100755 --- a/install.sh +++ b/install.sh @@ -15,13 +15,21 @@ echo "Installing dotfiles..." if [ "${CODER_TEMPLATE_TYPE}" == "Devcontainer" ]; then installers/install-nix.sh installers/install-nix-packages-flake.sh - . ~/.nix-profile/etc/profile.d/nix.sh + if [ -r "$HOME/.nix-profile/etc/profile.d/nix.sh" ]; then + . "$HOME/.nix-profile/etc/profile.d/nix.sh" + elif [ -r "${XDG_STATE_HOME:-$HOME/.local/state}/nix/profile/etc/profile.d/nix.sh" ]; then + . "${XDG_STATE_HOME:-$HOME/.local/state}/nix/profile/etc/profile.d/nix.sh" + fi elif [ "${CODER_OS_FAMILY:-}" == "Ubuntu" ]; then echo "Detected OS as Ubuntu, using apt"; sudo apt-get update; sudo apt-get install -y stow; installers/install-nix.sh - . ~/.nix-profile/etc/profile.d/nix.sh + if [ -r "$HOME/.nix-profile/etc/profile.d/nix.sh" ]; then + . "$HOME/.nix-profile/etc/profile.d/nix.sh" + elif [ -r "${XDG_STATE_HOME:-$HOME/.local/state}/nix/profile/etc/profile.d/nix.sh" ]; then + . "${XDG_STATE_HOME:-$HOME/.local/state}/nix/profile/etc/profile.d/nix.sh" + fi elif [ -f /etc/os-release ]; then echo "Idenitfying OS to install GNU stow..." if grep -q -i debian /etc/os-release; then diff --git a/installers/install-nix-packages-flake.sh b/installers/install-nix-packages-flake.sh index 9af236a..3a1a339 100755 --- a/installers/install-nix-packages-flake.sh +++ b/installers/install-nix-packages-flake.sh @@ -11,6 +11,8 @@ ARCHIVE_PATH="${FLAKE_PATH}/archive.nar" if ! which nix &>/dev/null; then if [ -r "$HOME/.nix-profile/etc/profile.d/nix.sh" ]; then . "$HOME/.nix-profile/etc/profile.d/nix.sh" + elif [ -r "${XDG_STATE_HOME:-$HOME/.local/state}/nix/profile/etc/profile.d/nix.sh" ]; then + . "${XDG_STATE_HOME:-$HOME/.local/state}/nix/profile/etc/profile.d/nix.sh" else echo "Nix isn't available. Exiting now!" exit 1 diff --git a/installers/install-nix.sh b/installers/install-nix.sh index d0ae44b..d0c2614 100755 --- a/installers/install-nix.sh +++ b/installers/install-nix.sh @@ -28,6 +28,8 @@ cat << EOF > ~/.bashrc # Source nix if it's installed if [ -r ~/.nix-profile/etc/profile.d/nix.sh ]; then . ~/.nix-profile/etc/profile.d/nix.sh +elif [ -r "${XDG_STATE_HOME:-$HOME/.local/state}/nix/profile/etc/profile.d/nix.sh" ]; then + . "${XDG_STATE_HOME:-$HOME/.local/state}/nix/profile/etc/profile.d/nix.sh" fi EOF diff --git a/sh/.profile b/sh/.profile index df29a89..b62df97 100644 --- a/sh/.profile +++ b/sh/.profile @@ -50,4 +50,6 @@ export HISTFILESIZE=10000 if [ -r "$HOME/.nix-profile/etc/profile.d/nix.sh" ]; then . "$HOME/.nix-profile/etc/profile.d/nix.sh" +elif [ -r "${XDG_STATE_HOME:-$HOME/.local/state}/nix/profile/etc/profile.d/nix.sh" ]; then + . "${XDG_STATE_HOME:-$HOME/.local/state}/nix/profile/etc/profile.d/nix.sh" fi