mirror of
https://github.com/nix-community/nix-on-droid.git
synced 2025-11-08 19:46:07 +01:00
Fix issues of lazy install of login-inner
If initalisation is done, a new session would result in a reinit as login-inner is not installed. The file /etc/UNINTIALISED helps to prevent this from happening. The same applies to any logic like home-manager sourcing which would only take effect after restarting the app.
This commit is contained in:
parent
e0ee316311
commit
90e5fb2f49
2 changed files with 35 additions and 34 deletions
|
|
@ -39,6 +39,7 @@ with lib;
|
||||||
environment.etc = {
|
environment.etc = {
|
||||||
"group".enable = false;
|
"group".enable = false;
|
||||||
"passwd".enable = false;
|
"passwd".enable = false;
|
||||||
|
"UNINTIALISED".text = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -23,51 +23,51 @@ writeText "login-inner" ''
|
||||||
export GC_NPROCS=1 # to prevent gc warnings of nix, see https://github.com/NixOS/nix/issues/3237
|
export GC_NPROCS=1 # to prevent gc warnings of nix, see https://github.com/NixOS/nix/issues/3237
|
||||||
|
|
||||||
${lib.optionalString config.build.initialBuild ''
|
${lib.optionalString config.build.initialBuild ''
|
||||||
echo "Set default user profile..."
|
if [[ -e /etc/UNINTIALISED ]]; then
|
||||||
${nix}/bin/nix-env --switch-profile /nix/var/nix/profiles/per-user/$USER/profile
|
echo "Set default user profile..."
|
||||||
|
${nix}/bin/nix-env --switch-profile /nix/var/nix/profiles/per-user/$USER/profile
|
||||||
|
|
||||||
[ "$#" -gt 0 ] || echo "Sourcing Nix environment..."
|
[ "$#" -gt 0 ] || echo "Sourcing Nix environment..."
|
||||||
. ${nix}/etc/profile.d/nix.sh
|
. ${nix}/etc/profile.d/nix.sh
|
||||||
|
|
||||||
export NIX_SSL_CERT_FILE=${cacert}
|
export NIX_SSL_CERT_FILE=${cacert}
|
||||||
|
|
||||||
echo "Installing and updating nix-channels..."
|
echo "Installing and updating nix-channels..."
|
||||||
${nix}/bin/nix-channel --add ${config.build.channel.nixpkgs} nixpkgs
|
${nix}/bin/nix-channel --add ${config.build.channel.nixpkgs} nixpkgs
|
||||||
${nix}/bin/nix-channel --update nixpkgs
|
${nix}/bin/nix-channel --update nixpkgs
|
||||||
${nix}/bin/nix-channel --add ${config.build.channel.nix-on-droid} nix-on-droid
|
${nix}/bin/nix-channel --add ${config.build.channel.nix-on-droid} nix-on-droid
|
||||||
${nix}/bin/nix-channel --update nix-on-droid
|
${nix}/bin/nix-channel --update nix-on-droid
|
||||||
|
|
||||||
echo "Copy default nix-on-droid config..."
|
echo "Copy default nix-on-droid config..."
|
||||||
${coreutils}/bin/mkdir --parents $HOME/.config/nixpkgs
|
${coreutils}/bin/mkdir --parents $HOME/.config/nixpkgs
|
||||||
${coreutils}/bin/cp $(${nix}/bin/nix-instantiate --eval --expr "<nix-on-droid/modules/environment/login/nix-on-droid.nix.default>") $HOME/.config/nixpkgs/nix-on-droid.nix
|
${coreutils}/bin/cp $(${nix}/bin/nix-instantiate --eval --expr "<nix-on-droid/modules/environment/login/nix-on-droid.nix.default>") $HOME/.config/nixpkgs/nix-on-droid.nix
|
||||||
${coreutils}/bin/chmod u+w $HOME/.config/nixpkgs/nix-on-droid.nix
|
${coreutils}/bin/chmod u+w $HOME/.config/nixpkgs/nix-on-droid.nix
|
||||||
|
|
||||||
echo "Installing first nix-on-droid generation..."
|
echo "Installing first nix-on-droid generation..."
|
||||||
${nix}/bin/nix build --no-link --file "<nix-on-droid>" nix-on-droid
|
${nix}/bin/nix build --no-link --file "<nix-on-droid>" nix-on-droid
|
||||||
$(${nix}/bin/nix path-info --file "<nix-on-droid>" nix-on-droid)/bin/nix-on-droid switch
|
$(${nix}/bin/nix path-info --file "<nix-on-droid>" nix-on-droid)/bin/nix-on-droid switch
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "Congratulations! Now you have Nix installed with some default packages like bashInteractive, \
|
echo "Congratulations! Now you have Nix installed with some default packages like bashInteractive, \
|
||||||
coreutils, cacert and most important nix-on-droid itself to manage local configuration, see"
|
coreutils, cacert and most important nix-on-droid itself to manage local configuration, see"
|
||||||
echo " nix-on-droid help"
|
echo " nix-on-droid help"
|
||||||
echo "or in the config file"
|
echo "or in the config file"
|
||||||
echo " ~/.config/nixpkgs/nix-on-droid.nix"
|
echo " ~/.config/nixpkgs/nix-on-droid.nix"
|
||||||
echo
|
echo
|
||||||
echo "You can go for the bare nix-on-droid setup or you can configure your phone via home-manager. See \
|
echo "You can go for the bare nix-on-droid setup or you can configure your phone via home-manager. See \
|
||||||
config file for further information."
|
config file for further information."
|
||||||
echo
|
echo
|
||||||
|
fi
|
||||||
''}
|
''}
|
||||||
|
|
||||||
[ "$#" -gt 0 ] || echo "Sourcing Nix environment..."
|
[ "$#" -gt 0 ] || echo "Sourcing Nix environment..."
|
||||||
. $HOME/.nix-profile/etc/profile.d/nix.sh
|
. $HOME/.nix-profile/etc/profile.d/nix.sh
|
||||||
|
|
||||||
${lib.optionalString (config.home-manager.config != null) ''
|
if [ -e "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh" ]; then
|
||||||
if [ -e "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh" ]; then
|
[ "$#" -gt 0 ] || echo "Sourcing home-manager environment..."
|
||||||
[ "$#" -gt 0 ] || echo "Sourcing home-manager environment..."
|
export NIX_PATH=$HOME/.nix-defexpr/channels''${NIX_PATH:+:}$NIX_PATH
|
||||||
export NIX_PATH=$HOME/.nix-defexpr/channels''${NIX_PATH:+:}$NIX_PATH
|
. "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh"
|
||||||
. "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh"
|
fi
|
||||||
fi
|
|
||||||
''}
|
|
||||||
|
|
||||||
# Workaround for https://github.com/NixOS/nix/issues/1865
|
# Workaround for https://github.com/NixOS/nix/issues/1865
|
||||||
export NIX_PATH=nixpkgs=$HOME/.nix-defexpr/channels/nixpkgs/:$NIX_PATH
|
export NIX_PATH=nixpkgs=$HOME/.nix-defexpr/channels/nixpkgs/:$NIX_PATH
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue