about summary refs log blame commit diff
path: root/run
blob: 47b05bfddef250b59d09b98a42e95ed263a66c1f (plain) (tree)
1
2
3
4
5
6
7
8
9
                                 
                                                              




                                                                                          

               















                                                                                                    

                                                                                                        








                                                                            
                               

                                     
                                                             
#!/run/current-system/sw/bin/bash
# SPDX-FileCopyrightText: 2022-2023 Alyssa Ross <hi@alyssa.is>
# SPDX-License-Identifier: EUPL-1.2+

set -uexo pipefail
export PATH=/run/wrappers/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin

mkswap /dev/vda
swapon /dev/vda

for o in $(</proc/cmdline); do
	case $o in
		configuration=*)
			configuration="${o#configuration=}"
			;;
		userdata=*)
			userdata="${o#userdata=}"
			;;
	esac
done

# --ignore-garbage because provider might e.g. insert carriage returns.
curl -fLsS --retry-all-errors --retry 5 "$userdata" | base64 -d --ignore-garbage > user-data.tar.zst
tar -Pxvf user-data.tar.zst
rm user-data.tar.zst
curl -fLsSo /tmp/spectrum-main.tar.gz https://spectrum-os.org/git/spectrum/snapshot/spectrum-main.tar.gz
tar -C /tmp -xf /tmp/spectrum-main.tar.gz

curl -fLsSo /etc/nixos/configuration.nix "$configuration"
systemctl start dbus.socket
nixos-rebuild switch -I nixos-config=/etc/nixos/configuration.nix \
	--show-trace \
	-I nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos
systemctl start --no-block multi-user.target systemd-journal-gatewayd.socket

exec systemd-run --wait -u nix-build \
	-p Restart=on-failure \
	-p StartLimitBurst=5 \
	-p StartLimitIntervalSec=1d \
	nix-build --keep-going /tmp/spectrum-main/release.nix