This commit is contained in:
2025-02-28 18:08:27 +01:00
parent 54f46e6aec
commit f15ecafe49

View File

@@ -1,14 +1,40 @@
function ns() {
_ns() {
local is_dev=$1; shift # "true" or "false"
local args=()
if $is_dev; then
local arg_suffix="^*"
else
local arg_suffix=""
fi
for pkg in "$@"; do
if [[ "$pkg" = -- ]]; then
break
fi
if [[ "$pkg" =~ ^.*[#:/].*$ ]]; then
args+=("$pkg")
args+=("${pkg}${arg_suffix}")
else
args+=(nixpkgs#"$pkg")
args+=(nixpkgs#"${pkg}${arg_suffix}")
fi
done
>&2 echo + exec nix shell "${args[@]}"
# Run anything after -- as a command
local cmd=("$@")
while [[ "${#cmd[@]}" -gt 2 && ${cmd[0]} != "--" ]]; do
cmd=("${cmd[@]:1}")
done
cmd=("${cmd[@]:1}")
if [[ ${#cmd[@]} -gt 0 ]]; then
(
_ns false "$args"
set -x
"${cmd[@]}"
)
return $?
fi
>&2 echo -n +
>&2 printf " %q" exec nix shell "${args[@]}"
>&2 echo
local outpaths="$(
export NIXPKGS_ALLOW_BROKEN
export NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM
@@ -74,7 +100,6 @@ function ns() {
export PATH="$(IFS=: ; printf "%s" "${add_to_path[*]}")${PATH:+":$PATH"}"
fi
if [[ "${#add_to_libs[@]}" -gt 0 ]]; then
export NIX_LDFLAGS="$(IFS=" " ; printf "-L%s" "${add_to_libs[*]}")${NIX_LDFLAGS:+" $NIX_LDFLAGS"}"
export LD_LIBRARY_PATH="$(IFS=: ; printf "%s" "${add_to_libs[*]}")${LD_LIBRARY_PATH:+":$LD_LIBRARY_PATH"}"
fi
if [[ "${#add_to_share[@]}" -gt 0 ]]; then
@@ -82,9 +107,13 @@ function ns() {
fi
if [[ "${#add_to_include[@]}" -gt 0 ]]; then
export CPATH="$(IFS=: ; printf "%s" "${add_to_include[*]}")${CPATH:+":$CPATH"}"
export CMAKE_INCLUDE_PATH="$(IFS=: ; printf "%s" "${add_to_include[*]}")${CMAKE_INCLUDE_PATH:+":$CMAKE_INCLUDE_PATH"}"
fi
if [[ "${#add_to_pythonpath[@]}" -gt 0 ]]; then
export PYTHONPATH="$(IFS=: ; printf "%s" "${add_to_pythonpath[*]}")${PYTHONPATH:+":$PYTHONPATH"}"
# export PYTHONNOUSERSITE=1
fi
}
ns() { _ns false "$@"; }
nd() { _ns true "$@"; }