1

propagate mylib to modules

This commit is contained in:
2022-08-08 19:46:58 +02:00
parent 35141735b5
commit 91258d3f0d
6 changed files with 13 additions and 10 deletions

View File

@ -18,9 +18,9 @@
# Other Flakes # Other Flakes
emacs-overlay.url = "github:nix-community/emacs-overlay"; emacs-overlay.url = "github:nix-community/emacs-overlay";
nur.url = "github:nix-community/NUR"; nur.url = "github:nix-community/NUR";
# nixvim.url = "github:pta2002/nixvim";
musnix.url = "github:musnix/musnix"; musnix.url = "github:musnix/musnix";
devshell.url = "github:numtide/devshell"; devshell.url = "github:numtide/devshell";
# nixvim.url = "github:pta2002/nixvim";
}; };
# Outputs is a function that takes the inputs as arguments. # Outputs is a function that takes the inputs as arguments.
@ -35,6 +35,7 @@
# Set overlays + unfree globally # Set overlays + unfree globally
pkgs = import nixpkgs { pkgs = import nixpkgs {
inherit system; inherit system;
config.allowUnfree = true; config.allowUnfree = true;
overlays = [ overlays = [
inputs.devshell.overlay inputs.devshell.overlay
@ -44,7 +45,7 @@
}; };
# Add my additions to the nixpkgs lib # Add my additions to the nixpkgs lib
# mylib = nixpkgs.lib.extend (self: super: { my = import ./lib { inherit pkgs inputs; lib = self; }; }); # lib = nixpkgs.lib.extend (self: super: { my = import ./lib { inherit pkgs inputs; lib = self; }; });
mylib = import ./lib { inherit inputs pkgs; lib = nixpkgs.lib; }; mylib = import ./lib { inherit inputs pkgs; lib = nixpkgs.lib; };
# The rec expression turns a basic set into a set where self-referencing is possible. # The rec expression turns a basic set into a set where self-referencing is possible.
@ -62,7 +63,7 @@
# This makes it easy to add different configurations later (e.g. for a laptop). # This makes it easy to add different configurations later (e.g. for a laptop).
# Usage: sudo nixos-rebuild switch --flake .#nixinator # Usage: sudo nixos-rebuild switch --flake .#nixinator
nixinator = mylib.nixos.mkNixosConfig { nixinator = mylib.nixos.mkNixosConfig {
inherit system; inherit system mylib;
hostname = "nixinator"; hostname = "nixinator";
username = "christoph"; username = "christoph";
@ -70,7 +71,7 @@
}; };
nixtop = mylib.nixos.mkNixosConfig { nixtop = mylib.nixos.mkNixosConfig {
inherit system; inherit system mylib;
hostname = "nixtop"; hostname = "nixtop";
username = "christoph"; username = "christoph";

View File

@ -3,7 +3,7 @@
# The nixosConfig allows to access the toplevel system configuration from within home manager # The nixosConfig allows to access the toplevel system configuration from within home manager
# https://github.com/nix-community/home-manager/blob/586ac1fd58d2de10b926ce3d544b3179891e58cb/nixos/default.nix#L19 # https://github.com/nix-community/home-manager/blob/586ac1fd58d2de10b926ce3d544b3179891e58cb/nixos/default.nix#L19
{ inputs, lib, config, nixosConfig, pkgs, ... }: { inputs, lib, mylib, config, nixosConfig, pkgs, ... }:
# This is a module # This is a module
# Because no imports/options/config is defined explicitly, everything is treated as config # Because no imports/options/config is defined explicitly, everything is treated as config

View File

@ -4,13 +4,13 @@ let
inherit (inputs) home-manager; inherit (inputs) home-manager;
in rec { in rec {
mkNixosConfig = { system ? "x86_64-linux", hostname, username ? "christoph", extraModules ? [ ] }: mkNixosConfig = { system ? "x86_64-linux", mylib, hostname, username ? "christoph", extraModules ? [ ] }:
lib.nixosSystem { lib.nixosSystem {
inherit system; inherit system;
# Make our inputs available to the configuration.nix (for importing modules) # Make our inputs available to the configuration.nix (for importing modules)
# specialArgs are propagated to all modules # specialArgs are propagated to all modules
specialArgs = { inherit inputs hostname; }; specialArgs = { inherit inputs hostname mylib; };
modules = builtins.concatLists [ modules = builtins.concatLists [
[ [
@ -32,6 +32,8 @@ in rec {
# know how to handle that... # know how to handle that...
[ [
home-manager.nixosModules.home-manager { home-manager.nixosModules.home-manager {
# extraSpecialArgs are propagated to all hm config modules
home-manager.extraSpecialArgs = { inherit inputs hostname mylib; };
# Use systems pkgs, disables nixpkgs.* options in home.nix # Use systems pkgs, disables nixpkgs.* options in home.nix
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;

View File

@ -2,7 +2,7 @@
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ inputs, hostname, lib, config, pkgs, ... }: { inputs, hostname, lib, mylib, config, pkgs, ... }:
{ {
imports = [ imports = [

View File

@ -1,4 +1,4 @@
{ musnix, config, lib, pkgs, ... }: { musnix, config, lib, mylib, pkgs, ... }:
{ {
imports = [ imports = [

View File

@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }: { config, lib, mylib, pkgs, ... }:
{ {
imports = [ imports = [