From e6f9574bb8a70ab10b36a9db33ac8ca1c1113ec6 Mon Sep 17 00:00:00 2001 From: atagen Date: Tue, 18 Nov 2025 13:54:09 +1100 Subject: [PATCH] create setup hook --- default.nix | 20 ++++++++++---------- flake.nix | 1 + unset-nix-env.sh | 18 ++++++++++++++++++ 3 files changed, 29 insertions(+), 10 deletions(-) create mode 100644 unset-nix-env.sh diff --git a/default.nix b/default.nix index 58adfa0..a308df5 100644 --- a/default.nix +++ b/default.nix @@ -32,16 +32,16 @@ stdenv.mkDerivation { ++ packages; buildCommand = '' - # unset all nix-related variables + # unset all nix-related and generic session variables unset SHELL configureFlags mesonFlags shell depsHostHost STRINGS depsTargetTarget stdenv \ - builder PWD SOURCE_DATE_EPOCH enableParallelInstalling CXX TEMPDIR system HOST_PATH \ - enableParallelBuilding doInstallCheck buildCommandPath enableParallelChecking LS_COLORS \ - depsTargetTargetPropagated cmakeFlakes outputs TMPDIR LD READELF doCheck \ - depsBuildBuild SIZE propagatedNativeBuildInputs strictDeps AR AS TEMP SHLVL NM \ - patches passAsFile buildInputs SSL_CERT_FILE depsBuildTarget OBJCOPY STRIP TMP OBJDUMP propagatedBuildInputs \ - CC __ETC_PROFILE_SOURCED depsBuildTargetPropagated depsBuildBuildPropagated CONFIG_SHELL __structuredAttrs \ - RANLIB nativeBuildInputs name depsHostHostPropagated TEST TZ HOME GZIP_NO_TIMESTAMPS \ - cmakeFlags TERM buildCommand preferLocalBuild _ + builder PWD SOURCE_DATE_EPOCH enableParallelInstalling CXX TEMPDIR system HOST_PATH \ + enableParallelBuilding doInstallCheck buildCommandPath enableParallelChecking LS_COLORS \ + depsTargetTargetPropagated cmakeFlakes outputs TMPDIR LD READELF doCheck \ + depsBuildBuild SIZE propagatedNativeBuildInputs strictDeps AR AS TEMP SHLVL NM \ + patches passAsFile buildInputs SSL_CERT_FILE depsBuildTarget OBJCOPY STRIP TMP OBJDUMP propagatedBuildInputs \ + CC __ETC_PROFILE_SOURCED depsBuildTargetPropagated depsBuildBuildPropagated CONFIG_SHELL __structuredAttrs \ + RANLIB nativeBuildInputs name depsHostHostPropagated TEST TZ HOME GZIP_NO_TIMESTAMPS \ + cmakeFlags TERM buildCommand preferLocalBuild unset "''${!NIX_@}" # create export commands for the rest envs="$(env | sed 's/^/export /' -)" @@ -49,7 +49,7 @@ stdenv.mkDerivation { printf '${script}' > $out echo "$envs" >> $out echo 'exec $SHELL' >> $out - # required here + # only required here sed -i 's/^export out=.*$//' $out # inserted by env cmd sed -i 's/^export _=.*$//' $out diff --git a/flake.nix b/flake.nix index dc66487..c966912 100644 --- a/flake.nix +++ b/flake.nix @@ -3,5 +3,6 @@ { self }: { mkShell = { pkgs, ... }@vars: import ./default.nix vars; + hook = ./unset-nix-env.sh; }; } diff --git a/unset-nix-env.sh b/unset-nix-env.sh new file mode 100644 index 0000000..243c709 --- /dev/null +++ b/unset-nix-env.sh @@ -0,0 +1,18 @@ +unsetNixEnv () { + # unset all nix-related and generic session variables + unset SHELL configureFlags mesonFlags shell depsHostHost STRINGS depsTargetTarget stdenv \ + builder PWD SOURCE_DATE_EPOCH enableParallelInstalling CXX TEMPDIR system HOST_PATH \ + enableParallelBuilding doInstallCheck buildCommandPath enableParallelChecking LS_COLORS \ + depsTargetTargetPropagated cmakeFlakes TMPDIR LD READELF doCheck \ + depsBuildBuild SIZE propagatedNativeBuildInputs strictDeps AR AS TEMP SHLVL NM \ + patches passAsFile buildInputs SSL_CERT_FILE depsBuildTarget OBJCOPY STRIP TMP OBJDUMP propagatedBuildInputs \ + CC __ETC_PROFILE_SOURCED depsBuildTargetPropagated depsBuildBuildPropagated CONFIG_SHELL __structuredAttrs \ + RANLIB nativeBuildInputs name depsHostHostPropagated TEST TZ HOME GZIP_NO_TIMESTAMPS \ + cmakeFlags TERM buildCommand preferLocalBuild buildPhase phases shellHook NIX_CC \ + NIX_STORE NIX_LDFLAGS NIX_BINTOOLS NIX_CFLAGS_COMPILE NIX_ENFORCE_NO_NATIVE NIX_HARDENING_ENABLE \ + NIX_BUILD_CORES + unset "''${!NIX_BINTOOLS@}" + unset "''${!NIX_CC@}" +} + +postHooks+=(unsetNixEnv)