mirror of
https://github.com/SebastianWendel/nixpkgs.git
synced 2024-09-20 12:29:02 +02:00
nixos/xonsh: source NixOS environment
Without doing that, xonsh is unusable as login shell
This commit is contained in:
parent
f601ab37c2
commit
347e251261
|
@ -45,7 +45,32 @@ in
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
environment.etc.xonshrc.text = cfg.config;
|
environment.etc.xonshrc.text = ''
|
||||||
|
# /etc/xonshrc: DO NOT EDIT -- this file has been generated automatically.
|
||||||
|
|
||||||
|
|
||||||
|
if not ''${...}.get('__NIXOS_SET_ENVIRONMENT_DONE'):
|
||||||
|
# The NixOS environment and thereby also $PATH
|
||||||
|
# haven't been fully set up at this point. But
|
||||||
|
# `source-bash` below requires `bash` to be on $PATH,
|
||||||
|
# so add an entry with bash's location:
|
||||||
|
$PATH.add('${pkgs.bash}/bin')
|
||||||
|
|
||||||
|
# Stash xonsh's ls alias, so that we don't get a collision
|
||||||
|
# with Bash's ls alias from environment.shellAliases:
|
||||||
|
_ls_alias = aliases.pop('ls', None)
|
||||||
|
|
||||||
|
# Source the NixOS environment config.
|
||||||
|
source-bash "${config.system.build.setEnvironment}"
|
||||||
|
|
||||||
|
# Restore xonsh's ls alias, overriding that from Bash (if any).
|
||||||
|
if _ls_alias is not None:
|
||||||
|
aliases['ls'] = _ls_alias
|
||||||
|
del _ls_alias
|
||||||
|
|
||||||
|
|
||||||
|
${cfg.config}
|
||||||
|
'';
|
||||||
|
|
||||||
environment.systemPackages = [ cfg.package ];
|
environment.systemPackages = [ cfg.package ];
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue