diff options
Diffstat (limited to 'modules/tools/devenv')
| -rw-r--r-- | modules/tools/devenv/alias.sh | 28 | ||||
| -rw-r--r-- | modules/tools/devenv/default.nix | 14 |
2 files changed, 29 insertions, 13 deletions
diff --git a/modules/tools/devenv/alias.sh b/modules/tools/devenv/alias.sh new file mode 100644 index 0000000..e63dbd8 --- /dev/null +++ b/modules/tools/devenv/alias.sh @@ -0,0 +1,28 @@ +devenv() { + local has_reload=false + local is_shell=false + + for arg in "$@"; do + if [[ "$arg" == "--reload" || "$arg" == "--no-reload" ]]; then + has_reload=true + fi + if [[ "$arg" == "shell" ]]; then + is_shell=true + fi + done + + if [[ "$is_shell" == true ]]; then + if [[ "$has_reload" == true ]]; then + command devenv "$@" "$SHELL" + else + command devenv "$@" --no-reload "$SHELL" + fi + return + fi + + if [[ "$has_reload" == true ]]; then + command devenv "$@" + else + command devenv "$@" --no-reload + fi +} diff --git a/modules/tools/devenv/default.nix b/modules/tools/devenv/default.nix index 56574b7..ddb7716 100644 --- a/modules/tools/devenv/default.nix +++ b/modules/tools/devenv/default.nix @@ -6,19 +6,7 @@ }; config = let - # Use --no-reload by default for devenv shell - shellIntegration = '' -devenv() { - for arg in "$@"; do - if [[ "$arg" == "--reload" || "$arg" == "--no-reload" ]]; then - command devenv "$@" - return - fi - done - - command devenv "$@" --no-reload -} -''; + shellIntegration = builtins.readFile ./alias.sh; in lib.mkIf config.tools.devenv.enable { home.packages = with pkgs; [ devenv |
