{ pkgs, lib, }: rec { # taken from https://github.com/NixOS/nixpkgs/blob/3650808d85dccbfa3be3d785dfd3ce33a757bd2c/pkgs/build-support/trivial-builders/default.nix#L335 writeNuShellApplication = { name, text, runtimeInputs ? [], meta ? {}, checkPhase ? null, }: writeTextFile { inherit name meta; executable = true; destination = "/bin/${name}"; allowSubstitutes = true; preferLocalBuild = false; text = '' #!${pkgs.nushell} '' + lib.optionalString (runtimeInputs != []) '' $env.PATH = ($env.PATH | split row (char esep) | prepend '${lib.makeBinPath runtimeInputs}'); '' + '' ${text} ''; checkPhase = # GHC (=> shellcheck) isn't supported on some platforms (such as risc-v) # but we still want to use writeShellApplication on those platforms if checkPhase == null then '' runHook preCheck nu -c "nu-check -d $target" runHook postCheck '' else checkPhase; }; packageNushellApplication = { name, path, runtimeInputs ? [], meta ? {}, checkPhase ? null, }: writeNuShellApplication { inherit name runtimeInputs meta checkPhase; text = builtins.readFile path; }; }