# SPDX-FileCopyrightText: 2022 Alyssa Ross # SPDX-License-Identifier: MIT { lib ? import , runScript ? "https://spectrum-os.org/git/infra/plain/run" , chain ? "https://github.com/nix-community/nixos-images/releases/download/nixos-unstable/netboot-x86_64-linux.ipxe" , configuration ? "https://spectrum-os.org/git/infra/plain/configuration.nix" , userdata ? "http://169.254.169.254/latest/user-data" }: let commands = [ "systemctl start network-online.target" "/run/current-system/sw/bin/curl -fLsSo /tmp/run ${runScript}" "/run/current-system/sw/bin/chmod +x /tmp/run" "/tmp/run" ]; cmdline = lib.concatMapStrings (cmd: ''systemd.run="${cmd}" '') commands + toString [ "systemd.unit=kernel-command-line.target" "systemd.run_success_action=none" "systemd.run_failure_action=none" "configuration=${configuration}" "userdata=${userdata}" ]; defaultCmdlineLength = 122; cmdlineMax = 2048; in assert builtins.stringLength cmdline + defaultCmdlineLength <= cmdlineMax; '' #!ipxe set cmdline ${cmdline} dhcp chain ${chain} ''