27 lines
1.2 KiB
Nix
27 lines
1.2 KiB
Nix
{inputs}: let
|
|
inherit (inputs.nixpkgs) lib;
|
|
inherit (lib) foldl;
|
|
inherit (import ./core.nix {inherit lib;}) import' mergeRecursively;
|
|
|
|
# helpful utility functions used around the system
|
|
builders = import' ./builders.nix {inherit inputs;}; # system builders
|
|
services = import' ./services.nix; # systemd-service generators
|
|
validators = import' ./validators.nix; # validate system conditions
|
|
helpers = import' ./helpers; # helper functions
|
|
hardware = import' ./hardware.nix; # hardware capability checks
|
|
xdg = import' ./xdg; # xdg user directories & templates
|
|
|
|
# abstractions over networking functions
|
|
# dag library is a modified version of the one found in
|
|
# rycee's NUR repository
|
|
dag = import' ./network/dag.nix; # dag is in network because it's designed for network only use
|
|
firewall = import' ./network/firewall.nix {inherit dag;}; # build nftables tables and chains
|
|
namespacing = import' ./network/namespacing.nix; # TODO
|
|
|
|
# aliases for commonly used strings or functions
|
|
aliases = import' ./aliases.nix;
|
|
|
|
importedLibs = [builders services validators helpers hardware aliases firewall namespacing dag xdg];
|
|
in
|
|
# extend nixpkgs lib
|
|
lib.extend (_: _: foldl mergeRecursively {} importedLibs)
|