dotfiles/scripts/mzteinit/package.nix
2024-03-11 15:41:09 +01:00

28 lines
912 B
Nix

{ pkgs, lib }:
{ setEnvironment ? null }:
pkgs.writeShellApplication {
name = "mzteinit";
# We need a wrapper script here because nix cannot build mzteinit while taking localconf into
# account, as the builder has no access to the home directory. Thus, the user must build
# mzteinit and we need to launch it here (before it's contained in $PATH, hence the absolute path).
text = ''
${lib.optionalString (setEnvironment != null) ''
if [ -z "$__NIXOS_SET_ENVIRONMENT_DONE" ]; then
# shellcheck disable=SC1091
. ${setEnvironment}
fi
'' }
mzteinit_path="$HOME"/.local/bin/mzteinit
if [[ -f "$mzteinit_path" ]]; then
exec $mzteinit_path
else
echo "mzteinit not found, starting pre-launch emergency shell!"
exec ${pkgs.bash}/bin/bash
fi
'';
bashOptions = [ "errexit" "pipefail" ];
derivationArgs.passthru.shellPath = "/bin/mzteinit";
}