dumb-manager lol

pci.express bc85bfa6 930d7824

verified
+12 -2
flake.nix
··· 19 } 20 ) 21 ); 22 in 23 { 24 nixosConfigurations = { ··· 31 }; 32 }; 33 packages = forAllSystems (pkgs: { 34 - # Too lazy to do callPackage... 35 - mac-home = (import ./home/mac) pkgs; 36 }); 37 formatter = forAllSystems (pkgs: pkgs.nixfmt-rfc-style); 38 }; 39 }
··· 19 } 20 ) 21 ); 22 + dumb-manager = import ./lib/dumb-manager.nix; 23 in 24 { 25 nixosConfigurations = { ··· 32 }; 33 }; 34 packages = forAllSystems (pkgs: { 35 + # mac-home = (import ./home/mac) {inherit pkgs;}; 36 + mac-home = dumb-manager.configuration { 37 + inherit pkgs nixpkgs; 38 + module = ./home/mac; 39 + }; 40 }); 41 + # apps = forAllSystems (pkgs: { 42 + # update-links = { 43 + # type = "app"; 44 + # program = "${self.packages.${pkgs.system}.update-links}"; 45 + # }; 46 + # }); 47 formatter = forAllSystems (pkgs: pkgs.nixfmt-rfc-style); 48 }; 49 }
+5 -5
home/mac/default.nix
··· 1 - pkgs: 2 - 3 - pkgs.buildEnv { 4 - name = "mac-home"; 5 - paths = with pkgs; [ 6 zig 7 flashrom 8 tree
··· 1 + { pkgs }: 2 + { 3 + username = "user"; 4 + homeDirectory = "/Users/user"; 5 + packages = with pkgs; [ 6 zig 7 flashrom 8 tree
+20
lib/dumb-manager.nix
···
··· 1 + { 2 + configuration = 3 + { 4 + pkgs, 5 + nixpkgs, 6 + module, 7 + }: 8 + let 9 + cfg = (import module) { inherit pkgs; }; 10 + inherit (cfg) homeDirectory; 11 + update-links = import ./update-links.nix; 12 + packages = (cfg.packages or [ ]) ++ [ 13 + (update-links { inherit pkgs nixpkgs homeDirectory; }) 14 + ]; 15 + in 16 + pkgs.buildEnv { 17 + name = "dumb-manager"; 18 + paths = packages; 19 + }; 20 + }
+33
lib/update-links.nix
···
··· 1 + { 2 + nixpkgs, 3 + pkgs, 4 + homeDirectory, 5 + }: 6 + let 7 + registry = { 8 + flakes = [ 9 + { 10 + exact = true; 11 + from = { 12 + id = "n"; 13 + type = "indirect"; 14 + }; 15 + to = { 16 + path = "${nixpkgs}"; 17 + type = "path"; 18 + }; 19 + } 20 + ]; 21 + version = 2; 22 + }; 23 + registryFile = pkgs.writeTextFile { 24 + name = "registry.json"; 25 + destination = "/.config/nix/registry.json"; 26 + text = builtins.toJSON registry; 27 + }; 28 + in 29 + pkgs.writeShellScriptBin "update-links" '' 30 + #!/usr/bin/env bash 31 + mkdir -p ${homeDirectory}/.config/nix 32 + ln -sf ${registryFile}/.config/nix/registry.json ${homeDirectory}/.config/nix/registry.json 33 + ''