{ pkgs, system, self, ... }: { ${system}.default = pkgs.mkShell { name = "qois-infrastructure-shell"; buildInputs = let vscodium-with-extensions = pkgs.vscode-with-extensions.override { vscodeExtensions = with pkgs.vscode-extensions; [ jnoortheen.nix-ide ]; vscode = pkgs.vscodium; }; in [ vscodium-with-extensions ] ++ (with self.packages.${system}; [ cache deploy-qois sops sops-rekey ]) ++ (with pkgs; [ attic-client deploy-rs nixd nixfmt-rfc-style nixos-anywhere ssh-to-age pssh yq jq ]); 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 ''; }; }