From 02a8d469da2c7a025a00a2cc2e4e34961ad73ab2 Mon Sep 17 00:00:00 2001 From: Daiderd Jordan Date: Sat, 20 Jan 2018 01:35:42 +0100 Subject: bash: move file --- modules/programs/bash.nix | 95 --------------------------------------- modules/programs/bash/default.nix | 95 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+), 95 deletions(-) delete mode 100644 modules/programs/bash.nix create mode 100644 modules/programs/bash/default.nix (limited to 'modules') diff --git a/modules/programs/bash.nix b/modules/programs/bash.nix deleted file mode 100644 index 0e116ae..0000000 --- a/modules/programs/bash.nix +++ /dev/null @@ -1,95 +0,0 @@ -{ config, lib, pkgs, ... }: - -with lib; - -let - cfg = config.programs.bash; -in - -{ - options = { - - programs.bash.enable = mkOption { - type = types.bool; - default = true; - description = "Whether to configure bash as an interactive shell."; - }; - - programs.bash.interactiveShellInit = mkOption { - default = ""; - description = "Shell script code called during interactive bash shell initialisation."; - type = types.lines; - }; - - programs.bash.enableCompletion = mkOption { - type = types.bool; - default = false; - description = '' - Enable bash completion for all interactive bash shells. - - NOTE. This doesn't work with bash 3.2, which is the default on macOS. - ''; - }; - - }; - - config = mkIf cfg.enable { - - environment.systemPackages = - [ # Include bash package - pkgs.bashInteractive - ] ++ optional cfg.enableCompletion pkgs.bash-completion; - - environment.pathsToLink = - [ "/etc/bash_completion.d" - "/share/bash-completion/completions" - ]; - - environment.loginShell = mkDefault "bash -l"; - environment.variables.SHELL = mkDefault "${pkgs.bashInteractive}/bin/bash"; - - environment.etc."bashrc".text = '' - # /etc/bashrc: DO NOT EDIT -- this file has been generated automatically. - # This file is read for interactive shells. - - # Make bash check its window size after a process completes - shopt -s checkwinsize - - [ -r "/etc/bashrc_$TERM_PROGRAM" ] && . "/etc/bashrc_$TERM_PROGRAM" - - # Only execute this file once per shell. - if [ -n "$__ETC_BASHRC_SOURCED" -o -n "$NOSYSBASHRC" ]; then return; fi - __ETC_BASHRC_SOURCED=1 - - # Don't execute this file when running in a pure nix-shell. - if test -n "$IN_NIX_SHELL"; then return; fi - - export PATH=${config.environment.systemPath} - ${config.system.build.setEnvironment.text} - ${config.system.build.setAliases.text} - - ${config.environment.interactiveShellInit} - ${cfg.interactiveShellInit} - - ${optionalString cfg.enableCompletion '' - source "${pkgs.bash-completion}/etc/profile.d/bash_completion.sh" - - nullglobStatus=$(shopt -p nullglob) - shopt -s nullglob - for p in $NIX_PROFILES; do - for m in "$p/etc/bash_completion.d/"* "$p/share/bash-completion/completions/"*; do - source $m - done - done - eval "$nullglobStatus" - unset nullglobStatus p m - ''} - - # Read system-wide modifications. - if test -f /etc/bash.local; then - source /etc/bash.local - fi - ''; - - }; -} diff --git a/modules/programs/bash/default.nix b/modules/programs/bash/default.nix new file mode 100644 index 0000000..0e116ae --- /dev/null +++ b/modules/programs/bash/default.nix @@ -0,0 +1,95 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.programs.bash; +in + +{ + options = { + + programs.bash.enable = mkOption { + type = types.bool; + default = true; + description = "Whether to configure bash as an interactive shell."; + }; + + programs.bash.interactiveShellInit = mkOption { + default = ""; + description = "Shell script code called during interactive bash shell initialisation."; + type = types.lines; + }; + + programs.bash.enableCompletion = mkOption { + type = types.bool; + default = false; + description = '' + Enable bash completion for all interactive bash shells. + + NOTE. This doesn't work with bash 3.2, which is the default on macOS. + ''; + }; + + }; + + config = mkIf cfg.enable { + + environment.systemPackages = + [ # Include bash package + pkgs.bashInteractive + ] ++ optional cfg.enableCompletion pkgs.bash-completion; + + environment.pathsToLink = + [ "/etc/bash_completion.d" + "/share/bash-completion/completions" + ]; + + environment.loginShell = mkDefault "bash -l"; + environment.variables.SHELL = mkDefault "${pkgs.bashInteractive}/bin/bash"; + + environment.etc."bashrc".text = '' + # /etc/bashrc: DO NOT EDIT -- this file has been generated automatically. + # This file is read for interactive shells. + + # Make bash check its window size after a process completes + shopt -s checkwinsize + + [ -r "/etc/bashrc_$TERM_PROGRAM" ] && . "/etc/bashrc_$TERM_PROGRAM" + + # Only execute this file once per shell. + if [ -n "$__ETC_BASHRC_SOURCED" -o -n "$NOSYSBASHRC" ]; then return; fi + __ETC_BASHRC_SOURCED=1 + + # Don't execute this file when running in a pure nix-shell. + if test -n "$IN_NIX_SHELL"; then return; fi + + export PATH=${config.environment.systemPath} + ${config.system.build.setEnvironment.text} + ${config.system.build.setAliases.text} + + ${config.environment.interactiveShellInit} + ${cfg.interactiveShellInit} + + ${optionalString cfg.enableCompletion '' + source "${pkgs.bash-completion}/etc/profile.d/bash_completion.sh" + + nullglobStatus=$(shopt -p nullglob) + shopt -s nullglob + for p in $NIX_PROFILES; do + for m in "$p/etc/bash_completion.d/"* "$p/share/bash-completion/completions/"*; do + source $m + done + done + eval "$nullglobStatus" + unset nullglobStatus p m + ''} + + # Read system-wide modifications. + if test -f /etc/bash.local; then + source /etc/bash.local + fi + ''; + + }; +} -- cgit v1.2.3