1
0
Fork 0
mirror of https://github.com/LnL7/nix-darwin.git synced 2025-03-05 16:27:03 +00:00

global current-system

This commit is contained in:
Daiderd Jordan 2016-10-29 22:40:55 +02:00
parent 23a0eefe2d
commit f81d86d2cb
No known key found for this signature in database
GPG key ID: D02435D05B810C96
2 changed files with 49 additions and 7 deletions

View file

@ -51,6 +51,8 @@ let
environment.etc."tmux.conf".text = '' environment.etc."tmux.conf".text = ''
source-file ${config.system.build.setTmuxOptions} source-file ${config.system.build.setTmuxOptions}
bind 0 set status
set -g status-bg black set -g status-bg black
set -g status-fg white set -g status-fg white
''; '';
@ -65,9 +67,10 @@ let
bindkey -e bindkey -e
setopt autocd setopt autocd
export PROMPT='%B%(?..[%?] )%b> ' export PROMPT='%B%(?..[%?] )%b '
export RPROMPT='%F{green}%~%f' export RPROMPT='%F{green}%~%f'
export PATH=/var/run/current-system/sw/bin:/var/run/current-system/sw/bin''${PATH:+:$PATH}
export PATH=/nix/var/nix/profiles/default/bin:/nix/var/nix/profiles/default/sbin''${PATH:+:$PATH} export PATH=/nix/var/nix/profiles/default/bin:/nix/var/nix/profiles/default/sbin''${PATH:+:$PATH}
export PATH=$HOME/.nix-profile/bin:$HOME/.nix-profile/bin''${PATH:+:$PATH} export PATH=$HOME/.nix-profile/bin:$HOME/.nix-profile/bin''${PATH:+:$PATH}
@ -76,10 +79,10 @@ let
nixdarwin-rebuild () { nixdarwin-rebuild () {
case $1 in case $1 in
"build") nix-build --no-out-link "<nixpkgs>" -A nixdarwin.toplevel ;; "build") nix-build --no-out-link '<nixpkgs>' -A nixdarwin.toplevel ;;
"repl") nix-repl "$HOME/.nixpkgs/config.nix" ;; "repl") nix-repl "$HOME/.nixpkgs/config.nix" ;;
"shell") nix-shell "<nixpkgs>" -p nixdarwin.toplevel --run "zsh -l" ;; "shell") nix-shell '<nixpkgs>' -p nixdarwin.toplevel --run "zsh -l" ;;
"switch") nix-env -f "<nixpkgs>" -iA nixdarwin.toplevel && exec zsh -l ;; "switch") nix-env -f '<nixpkgs>' -iA nixdarwin.toplevel && nix-shell '<nixpkgs>' -A nixdarwin.toplevel --run 'sudo $out/activate' && exec zsh -l ;;
"") return 1 ;; "") return 1 ;;
esac esac
} }

View file

@ -26,6 +26,11 @@ in {
''; '';
}; };
system.nixdarwinLabel = mkOption {
type = types.str;
default = "16.09";
};
# Used by <nixos/modules/system/etc/etc.nix> # Used by <nixos/modules/system/etc/etc.nix>
system.activationScripts = mkOption { internal = true; }; system.activationScripts = mkOption { internal = true; };
@ -33,9 +38,43 @@ in {
config = { config = {
system.build.toplevel = pkgs.buildEnv { system.activationScripts.script = ''
name = "nixdarwin-system"; #! ${pkgs.stdenv.shell}
paths = [ cfg.path cfg.build.etc ];
systemConfig=@out@
# Make this configuration the current configuration.
# The readlink is there to ensure that when $systemConfig = /system
# (which is a symlink to the store), /run/current-system is still
# used as a garbage collection root.
ln -sfn "$(readlink -f "$systemConfig")" /run/current-system
# Prevent the current configuration from being garbage-collected.
ln -sfn /run/current-system /nix/var/nix/gcroots/current-system
'';
system.build.toplevel = pkgs.stdenvNoCC.mkDerivation {
name = "nixdarwin-system-${cfg.nixdarwinLabel}";
preferLocalBuild = true;
activationScript = config.system.activationScripts.script;
inherit (cfg) nixdarwinLabel;
buildCommand = ''
mkdir $out
ln -s ${cfg.build.etc}/etc $out/etc
ln -s ${cfg.path} $out/sw
echo "$activationScript" > $out/activate
substituteInPlace $out/activate --subst-var out
chmod u+x $out/activate
unset activationScript
echo -n "$nixdarwinLabel" > $out/nixdarwin-version
echo -n "$system" > $out/system
'';
}; };
}; };