docs: Update inline code docs for LSP help
All checks were successful
CI / Format Check (push) Successful in 2s
CI / Flake Check (push) Successful in 1m39s
CI / Evaluate Key Configurations (nix-builder) (push) Successful in 8s
CI / Evaluate Key Configurations (nix-desktop1) (push) Successful in 7s
CI / Evaluate Key Configurations (nix-laptop1) (push) Successful in 7s
CI / Evaluate Artifacts (installer-iso-nix-laptop1) (push) Successful in 14s
CI / Evaluate Artifacts (lxc-nix-builder) (push) Successful in 8s
CI / Build and Publish Documentation (push) Successful in 5s
All checks were successful
CI / Format Check (push) Successful in 2s
CI / Flake Check (push) Successful in 1m39s
CI / Evaluate Key Configurations (nix-builder) (push) Successful in 8s
CI / Evaluate Key Configurations (nix-desktop1) (push) Successful in 7s
CI / Evaluate Key Configurations (nix-laptop1) (push) Successful in 7s
CI / Evaluate Artifacts (installer-iso-nix-laptop1) (push) Successful in 14s
CI / Evaluate Artifacts (lxc-nix-builder) (push) Successful in 8s
CI / Build and Publish Documentation (push) Successful in 5s
This commit is contained in:
@@ -17,9 +17,11 @@ let
|
|||||||
cfg = config.athenix.sw.builders;
|
cfg = config.athenix.sw.builders;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.athenix.sw.builders = {
|
options.athenix.sw.builders = mkOption {
|
||||||
|
type = lib.types.submodule {
|
||||||
|
options = {
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
type = types.bool;
|
type = lib.types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = ''
|
||||||
Enable build server configuration.
|
Enable build server configuration.
|
||||||
@@ -34,9 +36,11 @@ in
|
|||||||
example = true;
|
example = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
giteaRunner = {
|
giteaRunner = mkOption {
|
||||||
|
type = lib.types.submodule {
|
||||||
|
options = {
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
type = types.bool;
|
type = lib.types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = ''
|
||||||
Enable Gitea Actions self-hosted runner.
|
Enable Gitea Actions self-hosted runner.
|
||||||
@@ -48,7 +52,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
url = mkOption {
|
url = mkOption {
|
||||||
type = types.str;
|
type = lib.types.str;
|
||||||
description = ''
|
description = ''
|
||||||
URL of the Gitea instance to connect to.
|
URL of the Gitea instance to connect to.
|
||||||
This should be the base URL without any path components.
|
This should be the base URL without any path components.
|
||||||
@@ -57,7 +61,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
tokenFile = mkOption {
|
tokenFile = mkOption {
|
||||||
type = types.path;
|
type = lib.types.path;
|
||||||
default = "/var/lib/gitea-runner-token";
|
default = "/var/lib/gitea-runner-token";
|
||||||
description = ''
|
description = ''
|
||||||
Path to file containing Gitea runner registration token.
|
Path to file containing Gitea runner registration token.
|
||||||
@@ -75,7 +79,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
extraLabels = mkOption {
|
extraLabels = mkOption {
|
||||||
type = types.listOf types.str;
|
type = lib.types.listOf lib.types.str;
|
||||||
default = [ ];
|
default = [ ];
|
||||||
description = ''
|
description = ''
|
||||||
Additional labels to identify this runner in workflow files.
|
Additional labels to identify this runner in workflow files.
|
||||||
@@ -89,7 +93,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
name = mkOption {
|
name = mkOption {
|
||||||
type = types.str;
|
type = lib.types.str;
|
||||||
default = "athenix";
|
default = "athenix";
|
||||||
description = ''
|
description = ''
|
||||||
Unique name for this runner instance.
|
Unique name for this runner instance.
|
||||||
@@ -99,6 +103,14 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
default = { };
|
||||||
|
description = "Gitea Actions runner configuration.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
default = { };
|
||||||
|
description = "Build server configuration (CI/CD, Gitea Actions).";
|
||||||
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable (mkMerge [
|
config = mkIf cfg.enable (mkMerge [
|
||||||
(import ./programs.nix {
|
(import ./programs.nix {
|
||||||
|
|||||||
@@ -37,8 +37,11 @@ in
|
|||||||
];
|
];
|
||||||
|
|
||||||
options.athenix.sw = {
|
options.athenix.sw = {
|
||||||
|
# Software submodule for the Athenix system suite. sw.enable enables
|
||||||
|
# base packages and common configuration. Each sw.<type>.enable enables
|
||||||
|
# additional packages and services for that system type.
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
type = types.bool;
|
type = lib.types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = ''
|
||||||
Enable standard workstation configuration with base packages.
|
Enable standard workstation configuration with base packages.
|
||||||
@@ -53,17 +56,18 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
type = mkOption {
|
||||||
# DEPRECATED: Backwards compatibility for external modules
|
# DEPRECATED: Backwards compatibility for external modules
|
||||||
# Use athenix.sw.<type>.enable instead
|
# Use athenix.sw.<type>.enable instead
|
||||||
type = mkOption {
|
type = lib.types.nullOr (lib.types.either lib.types.str (lib.types.listOf lib.types.str));
|
||||||
type = types.nullOr (types.either types.str (types.listOf types.str));
|
|
||||||
default = null;
|
default = null;
|
||||||
description = "DEPRECATED: Use athenix.sw.<type>.enable instead. Legacy type selection.";
|
description = "DEPRECATED: Use athenix.sw.<type>.enable instead. Legacy type selection.";
|
||||||
visible = false;
|
visible = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
extraPackages = mkOption {
|
extraPackages = mkOption {
|
||||||
type = types.listOf types.package;
|
# Additional packages to install beyond the defaults
|
||||||
|
type = lib.types.listOf lib.types.package;
|
||||||
default = [ ];
|
default = [ ];
|
||||||
description = ''
|
description = ''
|
||||||
Additional system packages to install beyond the defaults.
|
Additional system packages to install beyond the defaults.
|
||||||
@@ -73,7 +77,8 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
excludePackages = mkOption {
|
excludePackages = mkOption {
|
||||||
type = types.listOf types.package;
|
# Packages to exclude from the default package list
|
||||||
|
type = lib.types.listOf lib.types.package;
|
||||||
default = [ ];
|
default = [ ];
|
||||||
description = ''
|
description = ''
|
||||||
Packages to exclude from the default package list.
|
Packages to exclude from the default package list.
|
||||||
|
|||||||
@@ -17,9 +17,11 @@ let
|
|||||||
cfg = config.athenix.sw.desktop;
|
cfg = config.athenix.sw.desktop;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.athenix.sw.desktop = {
|
options.athenix.sw.desktop = mkOption {
|
||||||
|
type = lib.types.submodule {
|
||||||
|
options = {
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
type = types.bool;
|
type = lib.types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = ''
|
||||||
Enable full desktop environment with KDE Plasma 6.
|
Enable full desktop environment with KDE Plasma 6.
|
||||||
@@ -37,6 +39,10 @@ in
|
|||||||
example = true;
|
example = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
default = { };
|
||||||
|
description = "Desktop environment configuration (KDE Plasma 6).";
|
||||||
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable (mkMerge [
|
config = mkIf cfg.enable (mkMerge [
|
||||||
(import ./programs.nix {
|
(import ./programs.nix {
|
||||||
|
|||||||
@@ -17,9 +17,11 @@ let
|
|||||||
cfg = config.athenix.sw.headless;
|
cfg = config.athenix.sw.headless;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.athenix.sw.headless = {
|
options.athenix.sw.headless = mkOption {
|
||||||
|
type = lib.types.submodule {
|
||||||
|
options = {
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
type = types.bool;
|
type = lib.types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = ''
|
||||||
Enable minimal headless server configuration.
|
Enable minimal headless server configuration.
|
||||||
@@ -35,6 +37,10 @@ in
|
|||||||
example = true;
|
example = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
default = { };
|
||||||
|
description = "Headless server configuration (SSH, minimal CLI tools).";
|
||||||
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable (mkMerge [
|
config = mkIf cfg.enable (mkMerge [
|
||||||
(import ./programs.nix {
|
(import ./programs.nix {
|
||||||
|
|||||||
@@ -14,9 +14,11 @@ let
|
|||||||
cfg = config.athenix.sw.stateless-kiosk;
|
cfg = config.athenix.sw.stateless-kiosk;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.athenix.sw.stateless-kiosk = {
|
options.athenix.sw.stateless-kiosk = mkOption {
|
||||||
|
type = lib.types.submodule {
|
||||||
|
options = {
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
type = types.bool;
|
type = lib.types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = ''
|
||||||
Enable stateless kiosk mode for diskless PXE boot systems.
|
Enable stateless kiosk mode for diskless PXE boot systems.
|
||||||
@@ -34,7 +36,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
kioskUrl = mkOption {
|
kioskUrl = mkOption {
|
||||||
type = types.str;
|
type = lib.types.str;
|
||||||
default = "https://ha.factory.uga.edu";
|
default = "https://ha.factory.uga.edu";
|
||||||
description = ''
|
description = ''
|
||||||
Default URL to display in the kiosk browser.
|
Default URL to display in the kiosk browser.
|
||||||
@@ -45,6 +47,10 @@ in
|
|||||||
example = "https://homeassistant.lan:8123/lovelace/dashboard";
|
example = "https://homeassistant.lan:8123/lovelace/dashboard";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
default = { };
|
||||||
|
description = "Stateless kiosk configuration (PXE boot, Sway, MAC-based routing).";
|
||||||
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable (mkMerge [
|
config = mkIf cfg.enable (mkMerge [
|
||||||
(import ./kiosk-browser.nix {
|
(import ./kiosk-browser.nix {
|
||||||
|
|||||||
@@ -12,9 +12,11 @@ let
|
|||||||
cfg = config.athenix.sw.tablet-kiosk;
|
cfg = config.athenix.sw.tablet-kiosk;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.athenix.sw.tablet-kiosk = {
|
options.athenix.sw.tablet-kiosk = mkOption {
|
||||||
|
type = lib.types.submodule {
|
||||||
|
options = {
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
type = types.bool;
|
type = lib.types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = ''
|
||||||
Enable tablet kiosk mode with touch-optimized interface.
|
Enable tablet kiosk mode with touch-optimized interface.
|
||||||
@@ -33,7 +35,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
kioskUrl = mkOption {
|
kioskUrl = mkOption {
|
||||||
type = types.str;
|
type = lib.types.str;
|
||||||
default = "https://ha.factory.uga.edu";
|
default = "https://ha.factory.uga.edu";
|
||||||
description = ''
|
description = ''
|
||||||
URL to display in the kiosk browser on startup.
|
URL to display in the kiosk browser on startup.
|
||||||
@@ -42,6 +44,10 @@ in
|
|||||||
example = "https://dashboard.example.com";
|
example = "https://dashboard.example.com";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
default = { };
|
||||||
|
description = "Tablet kiosk configuration (Phosh, touch interface).";
|
||||||
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable (mkMerge [
|
config = mkIf cfg.enable (mkMerge [
|
||||||
(import ./programs.nix {
|
(import ./programs.nix {
|
||||||
|
|||||||
@@ -9,10 +9,10 @@ with lib;
|
|||||||
|
|
||||||
{
|
{
|
||||||
options.athenix.sw.remoteBuild = lib.mkOption {
|
options.athenix.sw.remoteBuild = lib.mkOption {
|
||||||
type = types.submodule {
|
type = lib.types.submodule {
|
||||||
options = {
|
options = {
|
||||||
hosts = mkOption {
|
hosts = mkOption {
|
||||||
type = types.listOf types.str;
|
type = lib.types.listOf lib.types.str;
|
||||||
default = [ "engr-ugaif@192.168.11.133 x86_64-linux" ];
|
default = [ "engr-ugaif@192.168.11.133 x86_64-linux" ];
|
||||||
description = ''
|
description = ''
|
||||||
List of remote build hosts for system rebuilding.
|
List of remote build hosts for system rebuilding.
|
||||||
@@ -31,7 +31,7 @@ with lib;
|
|||||||
};
|
};
|
||||||
|
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
type = types.bool;
|
type = lib.types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = ''
|
||||||
Whether to enable remote builds for the 'update-system' command.
|
Whether to enable remote builds for the 'update-system' command.
|
||||||
|
|||||||
Reference in New Issue
Block a user