miniguest/declarative/default.nix

49 lines
1.7 KiB
Nix
Raw Permalink Normal View History

2022-08-16 16:09:27 +03:00
# Copyright 2022 Julie Bettens
2021-08-09 15:15:36 +03:00
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
2021-08-09 15:15:36 +03:00
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
2021-08-09 15:15:36 +03:00
inputs:
2021-10-11 20:01:16 +03:00
{ config, lib, ... }:
2021-06-26 21:59:38 +03:00
with lib;
{
2021-08-09 15:15:36 +03:00
options.miniguests = mkOption {
description = "A set of NixOS configurations to be built and made available as miniguests.";
default = { };
2021-10-11 20:01:16 +03:00
type = types.attrsOf (types.submodule ({ options, name, ... }:
2021-08-09 15:15:36 +03:00
{
options = {
configuration = mkOption {
description = ''
A specification of the desired configuration of this
container, as a NixOS module.
'';
type = mkOptionType {
name = "Toplevel NixOS config";
merge = lib.options.mergeOneOption;
};
};
2021-10-11 20:01:16 +03:00
system = mkOption {
description = ''
specifies the nix platform type for which the guest should be built.
'';
type = types.str;
default = config.nixpkgs.system;
2021-10-11 20:01:16 +03:00
defaultText = literalDocBook "same as the host";
};
2021-08-09 15:15:36 +03:00
};
}));
2021-06-26 21:59:38 +03:00
};
2021-06-27 01:31:40 +03:00
2021-08-09 15:15:36 +03:00
imports = [ (import ./internal.nix inputs) ];
2021-06-26 21:59:38 +03:00
}