Skip to content

the-computer-club/lynx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lynx

lynx is an opinionated (edumucated) utility box for nixos configurations. lynx primarily uses the flake-parts framework.

lynx aims to have similar goals to nixpkgs, providing documentation, testing, and source code.

Bibliography

{
  description = "minimal flake example";
  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11";
    parts.url = "github:hercules-ci/flake-parts";
    lynx.url = "github:the-computer-club/lynx";
  };

  outputs = inputs@{self, parts, nixpkgs, lynx, ...}:
    let
      lynx' = import lynx.lib { flake-parts-lib=parts.lib; };
      # mkFlake with config.assertions and 
      # config.warnings support
      ## parts.lib.mkFlake can be used instead aswell.
      mkFlake = lynx'.mkFlakeWithAssertions;
    in
    mkFlake { inherit inputs; }
    (_: # https://flake.parts/module-arguments
    {
      systems = ["x86_64-linux"];
      imports = with lynx.flakeModules; [
        flake-guard  # define a wireguard network once, and use it everywhere.
        deploy-rs    # types for deploy-rs
        domains      # evaluate flake modules in their own namespace
        # "builtins" # include this if you're using `parts.lib.mkFlake` 
                     # instead `of `mkFlakeWithAssertions` 
      ];

      flake.nixosConfigurations.default = nixpkgs.lib.nixosSystem {
          specialArgs = { inherit inputs self; }
          modules = [
              ./configuration.nix
              ./hardware-configuration.nix
          ];
      };
    });
}