Update Makefile & move bootstrap to a separate script.
This commit is contained in:
parent
cfd4e65408
commit
dccabe82e4
41
Bootstrap.sh
Executable file
41
Bootstrap.sh
Executable file
|
@ -0,0 +1,41 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Install nixos to specified drive. To be run from Live ISO.
|
||||||
|
# Usage: ./Bootstrap.sh <DRIVE> [HOST]
|
||||||
|
target="${1}"
|
||||||
|
host="${2}"
|
||||||
|
|
||||||
|
if [[ "${target}" = "" ]]; then
|
||||||
|
printf "Usage: bootstrap_nixos <DRIVE> [HOST]\n"
|
||||||
|
return 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create partitions.
|
||||||
|
parted -s "${target}" mktable gpt
|
||||||
|
parted -s "${target}" mkpart primary 0% 512MB
|
||||||
|
parted -s "${target}" mkpart primary 512MB 100%
|
||||||
|
parted -s "${target}" name 1 NIXBOOT
|
||||||
|
parted -s "${target}" name 2 NIXROOT
|
||||||
|
parted -s "${target}" set 1 esp on
|
||||||
|
|
||||||
|
# Format.
|
||||||
|
mkfs.fat -F 32 /dev/disk/by-partlabel/NIXBOOT
|
||||||
|
mkfs.ext4 -F /dev/disk/by-partlabel/NIXROOT
|
||||||
|
|
||||||
|
# Mount.
|
||||||
|
mount /dev/disk/by-partlabel/NIXROOT /mnt
|
||||||
|
mkdir /mnt/boot
|
||||||
|
mount /dev/disk/by-partlabel/NIXBOOT /mnt/boot
|
||||||
|
|
||||||
|
# Generate config.
|
||||||
|
nixos-generate-config --root /mnt
|
||||||
|
|
||||||
|
# Install.
|
||||||
|
cd /mnt
|
||||||
|
if [[ "${host}" = "" ]]; then
|
||||||
|
printf "Warning: Installing basic system.\n"
|
||||||
|
nixos-install
|
||||||
|
else
|
||||||
|
printf "Installing ${host}...\n"
|
||||||
|
nixos-install --no-root-password --no-channel-copy --flake "${_nix_system_config}#${host}"
|
||||||
|
fi
|
63
Makefile
63
Makefile
|
@ -1,44 +1,53 @@
|
||||||
options = --option eval-cache false --fallback
|
options = --option eval-cache false --fallback
|
||||||
flake = .
|
flake = .
|
||||||
|
|
||||||
.PHONY: boot
|
|
||||||
boot:
|
|
||||||
nixos-rebuild boot $(options) --flake $(flake)
|
|
||||||
|
|
||||||
.PHONY: reboot
|
|
||||||
reboot: boot
|
|
||||||
reboot
|
|
||||||
|
|
||||||
.PHONY: switch
|
|
||||||
switch:
|
|
||||||
nixos-rebuild switch $(options) --flake $(flake)
|
|
||||||
|
|
||||||
.PHONY: update
|
|
||||||
update:
|
|
||||||
nix flake update
|
|
||||||
|
|
||||||
.PHONY: live
|
|
||||||
live:
|
|
||||||
nix build -o live $(options) $(flake)#nixosConfigurations.live.config.system.build.isoImage
|
|
||||||
|
|
||||||
.PHONY: android
|
|
||||||
android:
|
android:
|
||||||
nix-on-droid switch --flake $(flake)
|
nix-on-droid switch --flake $(flake)
|
||||||
cp ~/.termux/_font.ttf ~/.termux/font.ttf
|
cp ~/.termux/_font.ttf ~/.termux/font.ttf
|
||||||
cp ~/.termux/_colors.properties ~/.termux/colors.properties
|
cp ~/.termux/_colors.properties ~/.termux/colors.properties
|
||||||
|
|
||||||
.PHONY: check
|
boot:
|
||||||
|
nixos-rebuild boot $(options) --flake $(flake)
|
||||||
|
|
||||||
|
boot-vanilla:
|
||||||
|
mv /etc/nix/nix.conf /etc/nix/nix.conf_
|
||||||
|
nixos-rebuild boot $(options) --flake $(flake)
|
||||||
|
mv /etc/nix/nix.conf_ /etc/nix/nix.conf
|
||||||
|
|
||||||
check:
|
check:
|
||||||
nix flake check
|
nix flake check
|
||||||
|
|
||||||
.PHONY: trace
|
# HACK: https://github.com/nix-community/home-manager/issues/5589
|
||||||
trace:
|
fix-hm-root:
|
||||||
nix flake check --show-trace
|
mv /etc/nix/nix.conf /etc/nix/nix.conf_
|
||||||
|
systemctl restart home-manager-root.service
|
||||||
|
mv /etc/nix/nix.conf_ /etc/nix/nix.conf
|
||||||
|
|
||||||
|
install-nix:
|
||||||
|
sh <(curl -L https://nixos.org/nix/install) --no-daemon
|
||||||
|
|
||||||
|
install-hm:
|
||||||
|
nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager
|
||||||
|
nix-channel --update
|
||||||
|
nix-shell '<home-manager>' -A install
|
||||||
|
|
||||||
|
live:
|
||||||
|
nix build -o live $(options) $(flake)#nixosConfigurations.live.config.system.build.isoImage
|
||||||
|
|
||||||
|
reboot: boot
|
||||||
|
reboot
|
||||||
|
|
||||||
.PHONY: show
|
|
||||||
show:
|
show:
|
||||||
nix flake show
|
nix flake show
|
||||||
|
|
||||||
.PHONY: verify
|
switch:
|
||||||
|
nixos-rebuild switch $(options) --flake $(flake)
|
||||||
|
|
||||||
|
trace:
|
||||||
|
nix flake check --show-trace
|
||||||
|
|
||||||
|
update:
|
||||||
|
nix flake update
|
||||||
|
|
||||||
verify:
|
verify:
|
||||||
git verify-commit HEAD
|
git verify-commit HEAD
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ pkgs, lib, ... }: with lib; let
|
{ pkgs, lib, ... }: with lib; let
|
||||||
url = "https://i.imgur.com/GTrVpFh.jpeg";
|
url = "https://i.imgur.com/4lqm0AZ.jpeg";
|
||||||
sha256 = "1nn3ns14py4hf6ya50a84g0za4civd6mzg86a4z4k79sf7m23wza";
|
sha256 = "1bkc2rm1jy0bva9z78rq9a5gchwa61ns1gn59kdp1k63brawhx62";
|
||||||
forceContrastText = false;
|
forceContrastText = false;
|
||||||
in {
|
in {
|
||||||
options = {
|
options = {
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
in {
|
in {
|
||||||
text = ''
|
text = ''
|
||||||
unbind-key C-b
|
unbind-key C-b
|
||||||
bind -n ${mod}-r source-file /etc/tmux.conf
|
bind -n ${mod}-r source-file ~/.config/tmux/tmux.conf
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,45 +0,0 @@
|
||||||
{ ... }: {
|
|
||||||
text = ''
|
|
||||||
# Install nixos to specified drive. To be run from Live ISO.
|
|
||||||
# Usage: bootstrap_nixos <DRIVE> [HOST]
|
|
||||||
function bootstrap_nixos() {
|
|
||||||
local target="''${1}"
|
|
||||||
local host="''${2}"
|
|
||||||
|
|
||||||
if [[ "''${target}" = "" ]]; then
|
|
||||||
help bootstrap_nixos
|
|
||||||
return 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Create partitions.
|
|
||||||
parted -s "''${target}" mktable gpt
|
|
||||||
parted -s "''${target}" mkpart primary 0% 512MB
|
|
||||||
parted -s "''${target}" mkpart primary 512MB 100%
|
|
||||||
parted -s "''${target}" name 1 NIXBOOT
|
|
||||||
parted -s "''${target}" name 2 NIXROOT
|
|
||||||
parted -s "''${target}" set 1 esp on
|
|
||||||
|
|
||||||
# Format.
|
|
||||||
mkfs.fat -F 32 /dev/disk/by-partlabel/NIXBOOT
|
|
||||||
mkfs.ext4 -F /dev/disk/by-partlabel/NIXROOT
|
|
||||||
|
|
||||||
# Mount.
|
|
||||||
mount /dev/disk/by-partlabel/NIXROOT /mnt
|
|
||||||
mkdir /mnt/boot
|
|
||||||
mount /dev/disk/by-partlabel/NIXBOOT /mnt/boot
|
|
||||||
|
|
||||||
# Generate config.
|
|
||||||
nixos-generate-config --root /mnt
|
|
||||||
|
|
||||||
# Install.
|
|
||||||
cd /mnt
|
|
||||||
if [[ "''${host}" = "" ]]; then
|
|
||||||
_warn "Warning: Installing basic system."
|
|
||||||
nixos-install
|
|
||||||
else
|
|
||||||
_info "Installing ''${host}..."
|
|
||||||
nixos-install --no-root-password --no-channel-copy --flake "''${_nix_system_config}#''${host}"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
}
|
|
Loading…
Reference in a new issue