summary refs log tree commit diff
path: root/modules/programs/bash/bash.nix
blob: e7be3b5e1029b84642a3342db6dc65de84b91a04 (plain) (blame)
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
33
34
35
36
37
38
39
40
41
42
# This module defines global configuration for the Bash shell, in
# particular /etc/bashrc and /etc/profile.

{config, pkgs, ...}:

{
  environment.etc =
    [ { # /etc/bashrc: script executed when the shell starts as a
        # non-login shell.  /etc/profile also sources this file, so
        # most global configuration (such as environment variables)
        # should go into this script.
        source = pkgs.substituteAll {
          src = ./bashrc.sh;
          systemPath = config.system.path;
          wrapperDir = config.security.wrapperDir;
          modulesTree = config.system.modulesTree;
          defaultLocale = config.i18n.defaultLocale;
          nixEnvVars = config.nix.envVars;
          shellInit = config.environment.shellInit;
        };
        target = "bashrc";      
      }

      { # Script executed when the shell starts as a login shell.
        source = ./profile.sh;
        target = "profile";
      }

      { # Template for ~/.bashrc: script executed when the shell
        # starts as a non-login shell.
        source = ./bashrc-user.sh;
        target = "skel/.bashrc";
      }
      
      { # Configuration for readline in bash.
        source = ./inputrc;
        target = "inputrc";
      }
    ];

  system.build.binsh = pkgs.bashInteractive;
}