commit 40c4e7fe5b069de0a0795a3622c8abfa6bbe8aa0 Author: atagen Date: Mon Nov 17 20:38:57 2025 +1100 init diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..58adfa0 --- /dev/null +++ b/default.nix @@ -0,0 +1,61 @@ +{ + pkgs, + stdenv ? pkgs.stdenv, + packages ? [ ], + shellHook ? "", + ... +}@vars: +let + lib = pkgs.lib; + cleanVars = lib.removeAttrs vars [ + "pkgs" + "packages" + "shellHook" + "stdenv" + ]; + exported = lib.concatStringsSep "\n" (lib.mapAttrsToList (n: v: "export ${n}=${v}") cleanVars); + script = '' + #! /usr/bin/env bash + ${exported} + ${shellHook} + ''; +in +stdenv.mkDerivation { + name = "cass-shell"; + preferLocalBuild = true; + + nativeBuildInputs = + with pkgs; + [ + coreutils + ] + ++ packages; + + buildCommand = '' + # unset all nix-related 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 _ + unset "''${!NIX_@}" + # create export commands for the rest + envs="$(env | sed 's/^/export /' -)" + # assemble script + printf '${script}' > $out + echo "$envs" >> $out + echo 'exec $SHELL' >> $out + # required here + sed -i 's/^export out=.*$//' $out + # inserted by env cmd + sed -i 's/^export _=.*$//' $out + # append to user's current path + sed -i '/^export PATH=/ s/$/:\$PATH/' $out + chmod +x $out + ''; + +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..dc66487 --- /dev/null +++ b/flake.nix @@ -0,0 +1,7 @@ +{ + outputs = + { self }: + { + mkShell = { pkgs, ... }@vars: import ./default.nix vars; + }; +}