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
|
let
|
||||||
lib = nixpkgs.lib;
|
lib = nixpkgs.lib;
|
||||||
hostFiles = builtins.attrNames (builtins.readDir ./hosts);
|
hostFiles = builtins.attrNames (builtins.readDir ./hosts);
|
||||||
hostNames = lib.filter (name:
|
hostNames =
|
||||||
lib.hasSuffix ".nix" name && !(lib.hasSuffix "-hardware.nix" name)
|
lib.filter (name:
|
||||||
) hostFiles;
|
lib.hasSuffix ".nix" name
|
||||||
|
&& !(lib.hasSuffix "-hardware.nix" name)
|
||||||
|
&& name != "iso.nix"
|
||||||
|
)
|
||||||
|
hostFiles;
|
||||||
mkHost = name: lib.nixosSystem {
|
mkHost = name: lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
specialArgs = { inherit inputs; };
|
specialArgs = { inherit inputs; };
|
||||||
modules = [ (./hosts + "/${name}.nix") ];
|
modules = [ (./hosts + "/${name}.nix") ];
|
||||||
};
|
};
|
||||||
in {
|
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 =
|
packages.x86_64-linux.install-iso =
|
||||||
self.nixosConfigurations.installer.config.system.build.isoImage;
|
self.nixosConfigurations.installer.config.system.build.isoImage;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
(inputs.nixpkgs + "/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix")
|
|
||||||
inputs.lix-module.nixosModules.lixFromNixpkgs
|
inputs.lix-module.nixosModules.lixFromNixpkgs
|
||||||
../modules/system/base.nix
|
../modules/system/base.nix
|
||||||
../modules/desktop/gnome-minimal.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
|
set -euo pipefail
|
||||||
|
|
||||||
# Non-interactive Btrfs installer using the flake in this repo.
|
# 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}
|
DISK=${DISK:-/dev/vda}
|
||||||
HOSTNAME=${HOSTNAME:-nanuqsaurus}
|
HOSTNAME=${HOSTNAME:-installer}
|
||||||
|
|
||||||
SCRIPT_DIR=$(cd -- "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
SCRIPT_DIR=$(cd -- "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
||||||
REPO_ROOT=$(cd -- "${SCRIPT_DIR}/.." && pwd)
|
REPO_ROOT=$(cd -- "${SCRIPT_DIR}/.." && pwd)
|
||||||
|
|
@ -55,6 +55,7 @@ if [ ! -e "${host_file}" ]; then
|
||||||
imports = [
|
imports = [
|
||||||
inputs.lix-module.nixosModules.lixFromNixpkgs
|
inputs.lix-module.nixosModules.lixFromNixpkgs
|
||||||
../modules/system/base.nix
|
../modules/system/base.nix
|
||||||
|
../modules/desktop/gnome-minimal.nix
|
||||||
../modules/users/admin.nix
|
../modules/users/admin.nix
|
||||||
./${HOSTNAME}-hardware.nix
|
./${HOSTNAME}-hardware.nix
|
||||||
];
|
];
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue