liminix

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit bbd699d7b133092c1fb4bb11f558db4db3113af2
parent 0cd1bd99e10ddb25e88a117f2c272e0aedec4c43
Author: Daniel Barlow <dan@telent.net>
Date:   Fri,  3 Mar 2023 20:04:39 +0000

add module for device-specific config

in principle this module declares the config that's defined in
devices/foo/default.nix

Diffstat:
Mdefault.nix | 1+
Mmodules/base.nix | 27---------------------------
Amodules/hardware.nix | 36++++++++++++++++++++++++++++++++++++
3 files changed, 37 insertions(+), 27 deletions(-)

diff --git a/default.nix b/default.nix @@ -20,6 +20,7 @@ let config = (pkgs.lib.evalModules { modules = [ { _module.args = { inherit pkgs; lib = pkgs.lib; }; } + ./modules/hardware.nix ./modules/base.nix device.module liminix-config diff --git a/modules/base.nix b/modules/base.nix @@ -52,38 +52,11 @@ in { type = types.attrsOf types.anything; }; boot = { - dts = { - src = mkOption { type = types.path; }; - includes = mkOption { - default = []; - type = types.listOf types.path; - }; - }; commandLine = mkOption { type = types.listOf types.nonEmptyStr; default = []; }; }; - device = { - defaultOutput = mkOption { - type = types.nonEmptyStr; - }; - flash = { - address = mkOption { type = types.str; }; - size = mkOption { type = types.str; }; - }; - loadAddress = mkOption { default = null; }; - entryPoint = mkOption { }; - radios = mkOption { - type = types.listOf types.str; - default = []; - example = ["ath9k" "ath10k"]; - }; - rootDevice = mkOption { }; - networkInterfaces = mkOption { - type = types.attrsOf types.anything; - }; - }; }; config = { defaultProfile.packages = with pkgs; diff --git a/modules/hardware.nix b/modules/hardware.nix @@ -0,0 +1,36 @@ +{ lib, pkgs, config, ...}: +let + inherit (lib) mkEnableOption mkOption types isDerivation hasAttr ; +in { + options = { + boot = { + dts = { + src = mkOption { type = types.path; }; + includes = mkOption { + default = []; + type = types.listOf types.path; + }; + }; + }; + device = { + defaultOutput = mkOption { + type = types.nonEmptyStr; + }; + flash = { + address = mkOption { type = types.str; }; + size = mkOption { type = types.str; }; + }; + loadAddress = mkOption { default = null; }; + entryPoint = mkOption { }; + radios = mkOption { + type = types.listOf types.str; + default = []; + example = ["ath9k" "ath10k"]; + }; + rootDevice = mkOption { }; + networkInterfaces = mkOption { + type = types.attrsOf types.anything; + }; + }; + }; +}