91 lines
2.4 KiB
Nix
91 lines
2.4 KiB
Nix
args@{ config, lib, pkgs, ... }:
|
|
{
|
|
imports = [ ../options.nix ];
|
|
|
|
options.aether = {
|
|
streams = {
|
|
# INTERNAL
|
|
_internal.streams-src = lib.mkOption {
|
|
type = lib.types.pathInStore;
|
|
description = ''
|
|
The source repository of (streams).
|
|
'';
|
|
};
|
|
|
|
_internal.vendorHash = lib.mkOption {
|
|
type = lib.types.str;
|
|
description = ''
|
|
The vendor hash to use when finding PHP dependencies.
|
|
'';
|
|
};
|
|
|
|
# OPTIONS
|
|
package = lib.mkOption {
|
|
type = lib.types.package;
|
|
default = pkgs.callPackage ./package.nix {
|
|
src = config.aether.streams._internal.streams-src;
|
|
vendorHash = config.aether.streams._internal.vendorHash;
|
|
inherit (config.aether.streams) addonRepos themeRepos;
|
|
};
|
|
description = ''
|
|
The (streams) package to use.
|
|
|
|
The derivation must be built in a precise way to be compatible with
|
|
this module; see the package.nix file for details.
|
|
'';
|
|
};
|
|
|
|
subdomain = lib.mkOption {
|
|
type = lib.types.nullOr lib.types.str;
|
|
default = "streams";
|
|
description = ''
|
|
The subdomain to host the (streams) instance under.
|
|
|
|
If null, then (streams) is hosted at the domain itself.
|
|
'';
|
|
};
|
|
|
|
user = lib.mkOption {
|
|
type = lib.types.str;
|
|
default = "streams";
|
|
description = ''
|
|
The user to run (streams) with.
|
|
'';
|
|
};
|
|
|
|
createUser = lib.mkOption {
|
|
type = lib.types.bool;
|
|
default = true;
|
|
description = ''
|
|
Whether to create the (streams) user automatically.
|
|
'';
|
|
};
|
|
|
|
addonRepos = lib.mkOption {
|
|
type = lib.types.listOf lib.types.pathInStore;
|
|
default = [];
|
|
defaultText = "[ <streams-addons> ]";
|
|
description = ''
|
|
A list of repositories containing addons.
|
|
|
|
The official addon repository is provided by default.
|
|
'';
|
|
};
|
|
|
|
themeRepos = lib.mkOption {
|
|
type = lib.types.listOf lib.types.pathInStore;
|
|
default = [];
|
|
description = ''
|
|
A list of repositories containing themes.
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
|
|
config.assertions = lib.mkIf config.aether.https [
|
|
{
|
|
assertion = !(builtins.isNull config.aether.acmeEmail);
|
|
message = "HTTPS support requires providing a contact email";
|
|
}
|
|
];
|
|
}
|