feat(refactor): WIP 2.0 some progress
This commit is contained in:
5
lib/server/default.nix
Normal file
5
lib/server/default.nix
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
imports = [
|
||||
./serviceurl
|
||||
];
|
||||
}
|
||||
23
lib/server/serviceurl/default.nix
Normal file
23
lib/server/serviceurl/default.nix
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
mkServiceUrl' = import ./serviceurl.nix {inherit config;};
|
||||
in {
|
||||
options.clib = {
|
||||
server = {
|
||||
mkServiceUrl = lib.mkOption {
|
||||
type = lib.types.function;
|
||||
readOnly = true;
|
||||
description = "Helper function to generate a service URL.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config.clib = {
|
||||
server = {
|
||||
mkServiceUrl = mkServiceUrl';
|
||||
};
|
||||
};
|
||||
}
|
||||
11
lib/server/serviceurl/serviceurl.nix
Normal file
11
lib/server/serviceurl/serviceurl.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{config}: service: let
|
||||
mainDomain = config.server.networking.domain;
|
||||
tailscaleDomain = "ts.${mainDomain}";
|
||||
|
||||
domain =
|
||||
if service.exposure == "tunnel"
|
||||
then mainDomain
|
||||
else if service.exposure == "tailscale"
|
||||
then tailscaleDomain
|
||||
else (service.domain or mainDomain);
|
||||
in "${service.subdomain}.${domain}"
|
||||
Reference in New Issue
Block a user