From a3f9fde2a2d43dd477f402bd4b8df2a1cd29ca43 Mon Sep 17 00:00:00 2001 From: Azat Bahawi Date: Mon, 13 Nov 2023 10:40:41 +0300 Subject: 2023-11-13 --- flake.nix | 130 ++++++++++++++++---------------------------------------------- 1 file changed, 33 insertions(+), 97 deletions(-) (limited to 'flake.nix') diff --git a/flake.nix b/flake.nix index 49a3527..558ccfb 100644 --- a/flake.nix +++ b/flake.nix @@ -1,8 +1,8 @@ { - description = "nixfiles"; + description = "azahi's NixOS/nix-darwin/home-manager den"; - # `flake.lock` generation is not computable[1], thus it is impossible to add - # helper functions to manage inputs. + # The `flake.lock` generation is not computable[1]. So far it's impossible to + # add helper functions to manage inputs. # # [1]: https://github.com/NixOS/nix/issues/5373 inputs = { @@ -15,6 +15,11 @@ ref = "nixpkgs-unstable"; }; + # nixpkgs-local = { + # type = "path"; + # path = "/home/azahi/src/nixpkgs"; + # }; + nixpkgs-master = { type = "github"; owner = "NixOS"; @@ -29,12 +34,6 @@ ref = "release-23.05"; }; - # For testing PRs and stuff. - # nixpkgs-local = { - # type = "path"; - # path = "/home/azahi/src/nixpkgs"; - # }; - nixos-hardware = { type = "github"; owner = "NixOS"; @@ -254,107 +253,44 @@ lib = nixpkgs.lib.extend (import ./lib); in flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { + (system: { + apps.default = { + type = "app"; + program = "${self.packages.${system}.default}/bin/nixfiles"; + }; + + packages = with lib; let + buildIsoImage = name: self.nixosConfigurations.${name}.config.system.build.isoImage; + in { + default = self.legacyPackages.${system}.nixfiles; + iso-arm = buildIsoImage "iso-arm"; + iso-x86 = buildIsoImage "iso-x86"; + }; + + legacyPackages = import nixpkgs { inherit system; overlays = [self.overlays.default]; }; - in { - packages = with lib; - pkgs - // (mapAttrs (_: c: c.config.system.build.toplevel) - (builtins.removeAttrs self.nixosConfigurations ["iso-arm" "iso-x86"])) - // (let - buildIsoImage = name: self.nixosConfigurations.${name}.config.system.build.isoImage; - in { - iso-arm = buildIsoImage "iso-arm"; - iso-x86 = buildIsoImage "iso-x86"; - }) - // { - default = pkgs.nixfiles; - }; - - apps.${system}.default = { - type = "app"; - package = "${self.packages.${system}.default}/bin/nixfiles"; - }; - devShells.default = pkgs.mkShell { + devShells.default = self.legacyPackages.${system}.mkShell { inherit (self.checks.${system}.preCommit) shellHook; - # TODO Figure out why direnv overwrites exec-path. Meanwhile leave - # this in devShell. - packages = with pkgs; [nil]; }; - formatter = with pkgs; - writeShellScriptBin "fmt" '' - ${alejandra}/bin/alejandra --quiet "$@" - ''; - - checks.preCommit = pre-commit-hooks.lib.${system}.run { - src = builtins.path { - name = "nixfiles"; - path = ./.; - }; - hooks = { - alejandra.enable = true; - deadnix.enable = true; - editorconfig-checker.enable = true; - prettier = { - enable = true; - files = "\\.css"; - }; - shellcheck.enable = true; - shfmt.enable = true; - statix.enable = true; - typos = { - enable = true; - types = ["text"]; - pass_filenames = false; - }; - yamllint.enable = true; - promtool = { - enable = true; - name = "promtool"; - description = "Check Prometheus rules"; - entry = "${pkgs.prometheus.cli}/bin/promtool check rules"; - files = "(?x)^(modules/nixos/monitoring/rules/.*\.yaml)$"; - }; - }; - settings.deadnix.edit = true; - }; + formatter = self.legacyPackages.${system}.alejandra; + + checks = import ./checks.nix {inherit system inputs lib;}; }) - // (let - importConfigurations = dir: import dir {inherit inputs lib;}; - in { + // { inherit lib; modules.nixfiles = import ./modules/common; nixosModules.nixfiles = import ./modules/nixos; - nixosConfigurations = importConfigurations ./nixosConfigurations; + nixosConfigurations = import ./nixosConfigurations {inherit inputs lib;}; darwinModules.nixfiles = import ./modules/darwin; - darwinConfigurations = importConfigurations ./darwinConfigurations; - - overlays.default = final: prev: { - bruh = prev.callPackage ./packages/bruh.nix {}; - hiccup = prev.callPackage ./packages/hiccup.nix {}; - mpv-autosub = prev.callPackage ./packages/mpv-autosub.nix {}; - myip = prev.callPackage ./packages/myip.nix {}; - nixfiles = prev.callPackage ./packages/nixfiles.nix {}; - openssl_1_0_0 = prev.callPackage ./packages/openssl_1_0_0.nix {}; - logcli = prev.grafana-loki.overrideAttrs (_: super: { - pname = "logcli"; - subPackages = ["cmd/logcli"]; - nativeBuildInputs = super.nativeBuildInputs ++ [final.installShellFiles]; - postInstall = '' - installShellCompletion --cmd logcli \ - --bash <($out/bin/logcli --completion--script-bash) \ - --zsh <($out/bin/logcli --completion-script-zsh) - ''; - preFixup = null; - }); - }; - }); + darwinConfigurations = import ./darwinConfigurations {inherit inputs lib;}; + + overlays.default = final: prev: import ./overlays.nix final prev; + }; } -- cgit v1.2.3