dotfiles/shell.nix
2022-04-11 15:05:27 +02:00

30 lines
1.1 KiB
Nix

{ pkgs ? import <nixpkgs-unstable> { } }:
pkgs.mkShell rec {
name = "qois-infrastructure-shell";
buildInputs = let
extensions = with pkgs.vscode-extensions; [ jnoortheen.nix-ide ];
vscode-with-extensions =
pkgs.vscode-with-extensions.override { vscodeExtensions = extensions; };
in with pkgs; [ vscode-with-extensions nixfmt rnix-lsp ];
LANG = "C.UTF-8";
LC_ALL = "C.UTF-8";
shellHook = ''
# Bring xdg data dirs of dependencies and current program into the
# environment. This will allow us to get shell completion if any
# and there might be other benefits as well.
xdg_inputs=( "''${buildInputs[@]}" )
for p in "''${xdg_inputs[@]}"; do
if [[ -d "$p/share" ]]; then
XDG_DATA_DIRS="''${XDG_DATA_DIRS}''${XDG_DATA_DIRS+:}$p/share"
fi
done
export XDG_DATA_DIRS
# Make sure we support the pure case as well as non nixos cases
# where dynamic bash completions were not sourced.
#if ! type _completion_loader > /dev/null; then
# . ${pkgs.bash-completion}/etc/profile.d/bash_completion.sh
#fi
'';
}