aboutsummaryrefslogtreecommitdiffstats
path: root/modules/tools/devenv/default.nix
blob: 56574b702c5d0f0e45fa569c6b2e0e436a1354af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
{ config, pkgs, lib, ... }:

{
  options.tools.devenv = {
    enable = lib.mkEnableOption "Enables devenv.";
  };

  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
}
'';
  in lib.mkIf config.tools.devenv.enable {
    home.packages = with pkgs; [
      devenv
    ];

    programs.zsh.initContent = lib.mkIf config.programs.zsh.enable
      (lib.mkAfter shellIntegration);
    programs.bash.initExtra = lib.mkIf config.programs.bash.enable
      (lib.mkAfter shellIntegration);
  };
}