mirror of
https://github.com/nix-community/nix-on-droid.git
synced 2025-11-08 11:36:07 +01:00
bootstrap: add prompt to bootstrap with flakes setup
This commit is contained in:
parent
5900404627
commit
c0b87d967f
4 changed files with 109 additions and 24 deletions
|
|
@ -4,6 +4,8 @@
|
|||
|
||||
let
|
||||
inherit (initialPackageInfo) cacert nix;
|
||||
|
||||
nixCmd = "${nix}/bin/nix --extra-experimental-features flakes --extra-experimental-features nix-command";
|
||||
in
|
||||
|
||||
writeText "login-inner" ''
|
||||
|
|
@ -32,37 +34,77 @@ writeText "login-inner" ''
|
|||
|
||||
export NIX_SSL_CERT_FILE=${cacert}
|
||||
|
||||
echo "Installing and updating nix-channels..."
|
||||
${nix}/bin/nix-channel --add ${config.build.channel.nixpkgs} 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 --update nix-on-droid
|
||||
echo
|
||||
echo "Nix-on-Droid can be set up with channels or with flakes (still experimental)."
|
||||
while [[ -z $USE_FLAKE ]]; do
|
||||
read -r -p "Do you want to set it up with flakes? (y/N) " flakes
|
||||
|
||||
DEFAULT_CONFIG=$(${nix}/bin/nix-instantiate --eval --expr "<nix-on-droid/modules/environment/login/nix-on-droid.nix.default>")
|
||||
if [[ "$flakes" =~ ^[Yy]$ ]]; then
|
||||
USE_FLAKE=1
|
||||
elif [[ "$flakes" =~ ^[Nn]$ ]]; then
|
||||
USE_FLAKE=0
|
||||
else
|
||||
echo "Received invalid input, please try again. $flakes"
|
||||
fi
|
||||
done
|
||||
|
||||
echo "Installing first nix-on-droid generation..."
|
||||
${nix}/bin/nix --extra-experimental-features nix-command \
|
||||
build --no-link --file "<nix-on-droid>" nix-on-droid
|
||||
$(${nix}/bin/nix --extra-experimental-features nix-command \
|
||||
path-info --file "<nix-on-droid>" nix-on-droid)/bin/nix-on-droid switch -f $DEFAULT_CONFIG
|
||||
if [[ "$USE_FLAKE" == 0 ]]; then
|
||||
|
||||
. "${config.user.home}/.nix-profile/etc/profile.d/nix-on-droid-session-init.sh"
|
||||
echo "Setting up Nix-on-Droid with channels..."
|
||||
|
||||
echo "Copying default nix-on-droid config..."
|
||||
mkdir --parents $HOME/.config/nixpkgs
|
||||
cp $DEFAULT_CONFIG $HOME/.config/nixpkgs/nix-on-droid.nix
|
||||
chmod u+w $HOME/.config/nixpkgs/nix-on-droid.nix
|
||||
echo "Installing and updating nix-channels..."
|
||||
${nix}/bin/nix-channel --add ${config.build.channel.nixpkgs} 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 --update nix-on-droid
|
||||
|
||||
DEFAULT_CONFIG=$(${nix}/bin/nix-instantiate --eval --expr "<nix-on-droid/modules/environment/login/nix-on-droid.nix.default>")
|
||||
|
||||
echo "Installing first nix-on-droid generation..."
|
||||
${nixCmd} build --no-link --file "<nix-on-droid>" nix-on-droid
|
||||
$(${nixCmd} path-info --file "<nix-on-droid>" nix-on-droid)/bin/nix-on-droid switch --file $DEFAULT_CONFIG
|
||||
|
||||
. "${config.user.home}/.nix-profile/etc/profile.d/nix-on-droid-session-init.sh"
|
||||
|
||||
echo "Copying default nix-on-droid config..."
|
||||
mkdir --parents $HOME/.config/nixpkgs
|
||||
cp $DEFAULT_CONFIG $HOME/.config/nixpkgs/nix-on-droid.nix
|
||||
chmod u+w $HOME/.config/nixpkgs/nix-on-droid.nix
|
||||
|
||||
else
|
||||
|
||||
echo "Setting up Nix-on-Droid with flakes..."
|
||||
|
||||
echo "Installing flake from default template..."
|
||||
${nixCmd} flake new ${config.user.home}/.config/nix-on-droid --template ${config.build.flake.nix-on-droid}
|
||||
|
||||
echo "Installing first nix-on-droid generation..."
|
||||
${nixCmd} run ${config.build.flake.nix-on-droid} -- switch --flake ${config.user.home}/.config/nix-on-droid#deviceName
|
||||
|
||||
. "${config.user.home}/.nix-profile/etc/profile.d/nix-on-droid-session-init.sh"
|
||||
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "Congratulations! Now you have Nix installed with some default packages like bashInteractive, \
|
||||
coreutils, cacert and, most importantly, nix-on-droid itself to manage local configuration, see"
|
||||
echo " nix-on-droid help"
|
||||
echo "or in the config file"
|
||||
echo " ~/.config/nixpkgs/nix-on-droid.nix"
|
||||
echo
|
||||
echo "You can go for the bare nix-on-droid setup or you can configure your phone via home-manager. See \
|
||||
|
||||
if [[ "$USE_FLAKE" == 0 ]]; then
|
||||
echo "or the config file"
|
||||
echo " ~/.config/nixpkgs/nix-on-droid.nix"
|
||||
echo
|
||||
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."
|
||||
echo
|
||||
echo
|
||||
else
|
||||
echo "or the flake"
|
||||
echo " ~/.config/nix-on-droid/"
|
||||
echo
|
||||
echo "You can go for the bare nix-on-droid setup or you can configure your phone via home-manager. See \
|
||||
other templates in ${config.build.flake.nix-on-droid}."
|
||||
echo
|
||||
fi
|
||||
fi
|
||||
''}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue