Split ISO config from installed hosts; auto-include gnome in generated host
This commit is contained in:
parent
ec1bb28713
commit
e927339625
4 changed files with 44 additions and 7 deletions
20
flake.nix
20
flake.nix
|
|
@ -13,16 +13,28 @@
|
|||
let
|
||||
lib = nixpkgs.lib;
|
||||
hostFiles = builtins.attrNames (builtins.readDir ./hosts);
|
||||
hostNames = lib.filter (name:
|
||||
lib.hasSuffix ".nix" name && !(lib.hasSuffix "-hardware.nix" name)
|
||||
) hostFiles;
|
||||
hostNames =
|
||||
lib.filter (name:
|
||||
lib.hasSuffix ".nix" name
|
||||
&& !(lib.hasSuffix "-hardware.nix" name)
|
||||
&& name != "iso.nix"
|
||||
)
|
||||
hostFiles;
|
||||
mkHost = name: lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [ (./hosts + "/${name}.nix") ];
|
||||
};
|
||||
in {
|
||||
nixosConfigurations = lib.genAttrs (map (lib.removeSuffix ".nix") hostNames) mkHost;
|
||||
nixosConfigurations =
|
||||
lib.genAttrs (map (lib.removeSuffix ".nix") hostNames) mkHost
|
||||
// {
|
||||
installer = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [ ./hosts/iso.nix ];
|
||||
};
|
||||
};
|
||||
|
||||
packages.x86_64-linux.install-iso =
|
||||
self.nixosConfigurations.installer.config.system.build.isoImage;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
{
|
||||
imports = [
|
||||
(inputs.nixpkgs + "/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix")
|
||||
inputs.lix-module.nixosModules.lixFromNixpkgs
|
||||
../modules/system/base.nix
|
||||
../modules/desktop/gnome-minimal.nix
|
||||
|
|
|
|||
25
hosts/iso.nix
Normal file
25
hosts/iso.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{ config, pkgs, inputs, ... }:
|
||||
|
||||
# ISO-only configuration (uses installation-cd profile). Do not use for installed systems.
|
||||
{
|
||||
imports = [
|
||||
(inputs.nixpkgs + "/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix")
|
||||
inputs.lix-module.nixosModules.lixFromNixpkgs
|
||||
../modules/system/base.nix
|
||||
../modules/desktop/gnome-minimal.nix
|
||||
../modules/users/admin.nix
|
||||
];
|
||||
|
||||
networking.hostName = "iso-installer";
|
||||
|
||||
environment.etc."INSTALL.txt".source = ../docs/install-help.txt;
|
||||
environment.etc."motd".text = builtins.readFile ../docs/install-help.txt;
|
||||
environment.etc."issue".text = ''
|
||||
${builtins.readFile ../docs/install-help.txt}
|
||||
|
||||
Login: \l
|
||||
'';
|
||||
|
||||
# Embed the repo in the live ISO.
|
||||
environment.etc."nixos".source = ../.;
|
||||
}
|
||||
|
|
@ -2,10 +2,10 @@
|
|||
set -euo pipefail
|
||||
|
||||
# Non-interactive Btrfs installer using the flake in this repo.
|
||||
# Defaults: DISK=/dev/vda HOSTNAME=nanuqsaurus
|
||||
# Defaults: DISK=/dev/vda HOSTNAME=installer
|
||||
|
||||
DISK=${DISK:-/dev/vda}
|
||||
HOSTNAME=${HOSTNAME:-nanuqsaurus}
|
||||
HOSTNAME=${HOSTNAME:-installer}
|
||||
|
||||
SCRIPT_DIR=$(cd -- "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
||||
REPO_ROOT=$(cd -- "${SCRIPT_DIR}/.." && pwd)
|
||||
|
|
@ -55,6 +55,7 @@ if [ ! -e "${host_file}" ]; then
|
|||
imports = [
|
||||
inputs.lix-module.nixosModules.lixFromNixpkgs
|
||||
../modules/system/base.nix
|
||||
../modules/desktop/gnome-minimal.nix
|
||||
../modules/users/admin.nix
|
||||
./${HOSTNAME}-hardware.nix
|
||||
];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue