modules: restructure private modules directory

This commit is contained in:
Gabriel Arazas 2024-01-20 17:16:02 +08:00
parent 23d466dea6
commit 7bb0b0dd1f
No known key found for this signature in database
GPG Key ID: ADE0C41DAB221FCC
22 changed files with 123 additions and 136 deletions

View File

@ -8,15 +8,15 @@ let
config' = import <config> { };
lib = pkgs.lib.extend (import <config/lib/extras/extend-lib.nix>);
modules = import <config/modules/nixos> { inherit lib; isInternal = true; };
hmModules = import <config/modules/home-manager> { inherit lib; isInternal = true; };
extraArgs = {
nix-colors = import <nix-colors> { };
};
in
import <nixpkgs/nixos/lib/eval-config.nix> {
inherit lib;
modules = modules ++ extraModules ++ [
modules = extraModules ++ [
<config/modules/nixos>
<config/modules/nixos/_private>
<home-manager/nixos>
<disko/module.nix>
<sops-nix/modules/sops>
@ -37,7 +37,9 @@ import <nixpkgs/nixos/lib/eval-config.nix> {
];
config = {
home-manager.sharedModules = hmModules ++ [
home-manager.sharedModules = [
<config/modules/home-manager>
<config/modules/home-manager/_private>
<sops-nix/modules/home-manager/sops.nix>
({ config, lib, ... }: {
_module.args = extraArgs;

View File

@ -39,12 +39,12 @@
};
# This is to be used by the NixOS `home-manager.sharedModules` anyways.
sharedModules =
sharedModules = [
# Import our own custom modules from here..
import ../../modules/home-manager { inherit lib; isInternal = true; }
../../modules/home-manager
../../modules/home-manager/_private
# ...plus a bunch of third-party modules.
++ [
inputs.sops-nix.homeManagerModules.sops
inputs.nix-index-database.hmModules.nix-index
@ -83,6 +83,6 @@
flake = {
# Extending home-manager with my custom modules, if anyone cares.
homeModules.default = import ../../modules/home-manager { inherit lib; };
homeModules.default = ../../modules/home-manager;
};
}

View File

@ -88,15 +88,11 @@
# Only use imports as minimally as possible with the absolute
# requirements of a host. On second thought, only on flakes with
# optional NixOS modules.
sharedModules =
# Append with our custom NixOS modules from the modules folder.
import ../../modules/nixos { inherit lib; isInternal = true; }
sharedModules = [
# Import our custom modules.
../../modules/nixos
../../modules/nixos/_private
# Then, make the most with the modules from the flake inputs. Take
# note importing some modules such as home-manager are as part of the
# declarative host config so be sure to check out
# `hostSpecificModule` function as well as the declarative host setup.
++ [
inputs.nix-index-database.nixosModules.nix-index
inputs.sops-nix.nixosModules.sops
inputs.disko.nixosModules.disko
@ -176,6 +172,6 @@
flake = {
# Listing my public NixOS modules if anyone cares.
nixosModules.default = import ../../modules/nixos { inherit lib; };
nixosModules.default = ../../modules/nixos;
};
}

View File

@ -15,6 +15,7 @@ It's better that we lay this out with a list of guidelines.
* Custom modules are typically classified as private and public modules.
Private (or internal) modules are simply modules meant to be used in this project and nowhere else.
Public modules are meant to be used by others (but not necessarily mean we have to support or maintain these for them).
For convenience, these private modules are stored in `_private` folder of each environment.
* As such, public modules are not allowed to use the private library and modules.
Only the private modules can.

View File

@ -0,0 +1,8 @@
{
imports = [
./profiles/desktop.nix
./profiles/dev.nix
./profiles/editors.nix
./profiles/i18n.nix
];
}

View File

@ -1,11 +1,5 @@
{ lib
# Import the private modules
, isInternal ? false
}:
let
modules = [
{
imports = [
./files/mutable-files.nix
./programs/pop-launcher.nix
./services/archivebox.nix
@ -17,12 +11,4 @@ let
./services/plover.nix
./services/yt-dlp.nix
];
privateModules = [
./profiles/desktop.nix
./profiles/dev.nix
./profiles/editors.nix
./profiles/i18n.nix
];
in
modules
++ (lib.optionals isInternal privateModules)
}

View File

@ -0,0 +1,13 @@
{
imports = [
./profiles/archiving.nix
./profiles/browsers.nix
./profiles/desktop.nix
./profiles/dev.nix
./profiles/filesystem.nix
./profiles/gaming.nix
./profiles/i18n.nix
./profiles/server.nix
./profiles/vpn.nix
];
}

View File

@ -1,11 +1,5 @@
{ lib
# Include the private modules.
, isInternal ? false
}:
let
modules = [
{
imports = [
./programs/blender.nix
./programs/cardboard-wm.nix
./programs/distrobox.nix
@ -20,17 +14,4 @@ let
./services/yt-dlp.nix
./workflows
];
privateModules = [
./profiles/archiving.nix
./profiles/browsers.nix
./profiles/desktop.nix
./profiles/dev.nix
./profiles/filesystem.nix
./profiles/gaming.nix
./profiles/i18n.nix
./profiles/server.nix
./profiles/vpn.nix
];
in
modules
++ (lib.optionals isInternal privateModules)
}