mirror of
https://github.com/SebastianWendel/srx-platform-nix.git
synced 2024-09-19 20:09:02 +02:00
95 lines
3.1 KiB
Nix
95 lines
3.1 KiB
Nix
{ self, ... }:
|
|
let
|
|
inherit (builtins) listToAttrs replaceStrings stringLength substring;
|
|
|
|
removeSuffix = suffix: str:
|
|
let
|
|
sufLen = stringLength suffix;
|
|
sLen = stringLength str;
|
|
in
|
|
if sufLen <= sLen && suffix == substring (sLen - sufLen) sufLen str then
|
|
substring 0 (sLen - sufLen) str
|
|
else
|
|
str;
|
|
|
|
exposeModules = baseDir: paths:
|
|
let
|
|
prefix = stringLength (toString baseDir) + 1;
|
|
toPair = path: {
|
|
name = replaceStrings [ "/" ] [ "-" ] (
|
|
removeSuffix ".nix" (substring prefix 100000000 (toString path))
|
|
);
|
|
value = path;
|
|
};
|
|
in
|
|
listToAttrs (map toPair paths);
|
|
in
|
|
{
|
|
flake = {
|
|
modules.nixos = exposeModules ../modules/. [
|
|
../modules/custom/dns/knot
|
|
../modules/custom/dns/zones
|
|
../modules/filesystems/zfs.nix
|
|
../modules/hardware
|
|
../modules/hardware/bluetooth.nix
|
|
../modules/hardware/cpu/amd.nix
|
|
../modules/hardware/cpu/intel.nix
|
|
../modules/hardware/disk.nix
|
|
../modules/hardware/gpu/amd.nix
|
|
../modules/hardware/gpu/intel.nix
|
|
../modules/hardware/gpu/nvidia.nix
|
|
../modules/hardware/laptop.nix
|
|
../modules/hardware/power.nix
|
|
../modules/hardware/rpi4.nix
|
|
../modules/hardware/security/nitrokey.nix
|
|
../modules/hardware/security/secureboot.nix
|
|
../modules/hardware/security/yubikey.nix
|
|
../modules/hardware/sound/pipewire.nix
|
|
../modules/hardware/sound/pulseaudio.nix
|
|
../modules/roles/core
|
|
../modules/roles/desktop
|
|
../modules/roles/desktop/desktop-manager
|
|
../modules/roles/desktop/desktop-manager/gnome.nix
|
|
../modules/roles/desktop/display-manager
|
|
../modules/roles/desktop/office
|
|
../modules/roles/desktop/system
|
|
../modules/roles/desktop/window-manager
|
|
../modules/roles/media-center
|
|
../modules/roles/nas
|
|
../modules/roles/server
|
|
../modules/roles/workstation
|
|
../modules/services/container
|
|
../modules/services/container/docker.nix
|
|
../modules/services/container/k3s
|
|
../modules/services/container/podman.nix
|
|
../modules/services/database/mysql.nix
|
|
../modules/services/database/postgresql.nix
|
|
../modules/services/dns
|
|
../modules/services/dns/avahi.nix
|
|
../modules/services/dns/knot
|
|
../modules/services/dns/knsupdate.nix
|
|
../modules/services/monitoring
|
|
../modules/services/monitoring/loki.nix
|
|
../modules/services/monitoring/prometheus.nix
|
|
../modules/services/monitoring/promtail.nix
|
|
../modules/services/monitoring/telegraf.nix
|
|
../modules/services/netboot
|
|
../modules/services/netboot/config.nix
|
|
../modules/services/security/clamav
|
|
../modules/services/security/tang
|
|
../modules/services/storage/samba
|
|
../modules/services/storage/syncthing
|
|
../modules/services/virtualisation/libvirt.nix
|
|
../modules/services/virtualisation/microvm.nix
|
|
../modules/services/web/nginx.nix
|
|
../modules/users
|
|
../modules/users/personal/crstl
|
|
../modules/users/system/automat
|
|
../modules/users/system/root
|
|
../modules/users/system/service.nix
|
|
];
|
|
|
|
nixosModules = self.modules.nixos;
|
|
};
|
|
}
|