summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flake.lock23
-rw-r--r--flake.nix76
-rw-r--r--modules/default.nix10
-rw-r--r--modules/flake/default.nix7
-rw-r--r--modules/flake/homeConfigurations.nix30
-rw-r--r--modules/flake/homeManagerModules.nix20
-rw-r--r--modules/flake/hydraJobs.nix25
-rw-r--r--pkgs/all-packages.nix34
-rw-r--r--pkgs/cfspeedtest/default.nix (renamed from pkgs/cfspeedtest.nix)0
-rw-r--r--pkgs/check-pr/default.nix (renamed from pkgs/check-pr.nix)0
-rw-r--r--pkgs/clippy-sarif/default.nix (renamed from pkgs/clippy-sarif.nix)0
-rw-r--r--pkgs/default.nix40
-rw-r--r--pkgs/huion/default.nix (renamed from pkgs/huion.nix)0
-rw-r--r--pkgs/klassy/default.nix (renamed from pkgs/klassy.nix)0
-rw-r--r--pkgs/mommy/default.nix (renamed from pkgs/mommy.nix)0
-rw-r--r--pkgs/nixgc/default.nix (renamed from pkgs/nixgc.nix)0
-rw-r--r--pkgs/treefetch/default.nix (renamed from pkgs/treefetch.nix)0
-rw-r--r--pkgs/vim-just/default.nix (renamed from pkgs/vim-just.nix)0
-rw-r--r--pkgs/xwaylandvideobridge/default.nix (renamed from pkgs/xwaylandvideobridge.nix)0
-rw-r--r--templates/default.nix15
20 files changed, 71 insertions, 209 deletions
diff --git a/flake.lock b/flake.lock
index ce11d8a..53f9758 100644
--- a/flake.lock
+++ b/flake.lock
@@ -15,30 +15,9 @@
"type": "indirect"
}
},
- "parts": {
- "inputs": {
- "nixpkgs-lib": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1693611461,
- "narHash": "sha256-aPODl8vAgGQ0ZYFIRisxYG5MOGSkIczvu2Cd8Gb9+1Y=",
- "owner": "hercules-ci",
- "repo": "flake-parts",
- "rev": "7f53fdb7bdc5bb237da7fefef12d099e4fd611ca",
- "type": "github"
- },
- "original": {
- "owner": "hercules-ci",
- "repo": "flake-parts",
- "type": "github"
- }
- },
"root": {
"inputs": {
- "nixpkgs": "nixpkgs",
- "parts": "parts"
+ "nixpkgs": "nixpkgs"
}
}
},
diff --git a/flake.nix b/flake.nix
index 23ad382..67942bd 100644
--- a/flake.nix
+++ b/flake.nix
@@ -6,30 +6,58 @@
extra-trusted-public-keys = ["cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="];
};
- inputs = {
- nixpkgs.url = "nixpkgs/nixos-unstable";
+ inputs.nixpkgs.url = "nixpkgs/nixos-unstable";
- parts = {
- url = "github:hercules-ci/flake-parts";
- inputs.nixpkgs-lib.follows = "nixpkgs";
- };
- };
+ outputs = {
+ nixpkgs,
+ self,
+ ...
+ }: let
+ inherit (nixpkgs) lib;
+
+ systems = [
+ "x86_64-linux"
+ "aarch64-linux"
+ "x86_64-darwin"
+ "aarch64-darwin"
+ ];
+
+ forAllSystems = fn: lib.genAttrs systems (sys: fn nixpkgs.legacyPackages.${sys});
+ in {
+ packages = forAllSystems (
+ pkgs: let
+ overlay = lib.fix (final: self.overlays.default final pkgs);
+
+ /*
+ this filters out packages that may be broken or not supported
+ on the current system. packages that have no `version` or `platforms`
+ meta attribute are assumed to be valid
+ */
+ isValid = _: v:
+ lib.elem pkgs.system (v.meta.platforms or [pkgs.system]) && !(v.meta.broken or false);
- outputs = {parts, ...} @ inputs:
- parts.lib.mkFlake {inherit inputs;} {
- imports = [
- ./pkgs
- ./modules
- ./templates
- ];
-
- systems = [
- "x86_64-linux"
- "aarch64-linux"
- "x86_64-darwin"
- "aarch64-darwin"
- ];
-
- perSystem = {pkgs, ...}: {formatter = pkgs.alejandra;};
- };
+ pkgs' = lib.filterAttrs isValid overlay;
+ in
+ pkgs' // {default = pkgs'.treefetch;}
+ );
+
+ overlays.default = final: prev: (import ./pkgs final prev);
+
+ templates = let
+ # string -> string -> {}
+ mkTemplate = name: description: {
+ path = builtins.path {
+ path = ./templates/${name};
+ name = "${name}-template";
+ };
+
+ inherit description;
+ };
+ in
+ lib.mapAttrs mkTemplate {
+ basic = "minimal boilerplate for my flakes";
+ full = "big template for complex flakes (using flake-parts)";
+ nixos = "minimal boilerplate for flake-based nixos configuration";
+ };
+ };
}
diff --git a/modules/default.nix b/modules/default.nix
deleted file mode 100644
index e869905..0000000
--- a/modules/default.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- flake = {
- flakeModules = {
- default = import ./flake;
- homeConfigurations = import ./flake/homeConfigurations.nix;
- homeManagerModules = import ./flake/homeManagerModules.nix;
- hydraJobs = import ./flake/hydraJobs.nix;
- };
- };
-}
diff --git a/modules/flake/default.nix b/modules/flake/default.nix
deleted file mode 100644
index 3c193cb..0000000
--- a/modules/flake/default.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-_: {
- imports = [
- ./homeConfigurations.nix
- ./homeManagerModules.nix
- ./hydraJobs.nix
- ];
-}
diff --git a/modules/flake/homeConfigurations.nix b/modules/flake/homeConfigurations.nix
deleted file mode 100644
index 1c54b0c..0000000
--- a/modules/flake/homeConfigurations.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- lib,
- flake-parts-lib,
- ...
-}: let
- inherit (lib) mkOption types literalExpression;
- inherit (flake-parts-lib) mkTransposedPerSystemModule;
-in
- mkTransposedPerSystemModule {
- name = "homeConfigurations";
- option = mkOption {
- type = types.lazyAttrsOf types.raw;
- default = {};
- description = ''
- Instantiated home-manager configurations. Used by `home-manager`
- '';
- example = literalExpression ''
- {
- user = inputs.home-manager.homeManagerConfiguration {
- pkgs = import inputs.nixpkgs {inherit system;};
- modules = [
- ./my-users/home.nix
- ];
- };
- }
- '';
- };
-
- file = ./homeConfigurations.nix;
- }
diff --git a/modules/flake/homeManagerModules.nix b/modules/flake/homeManagerModules.nix
deleted file mode 100644
index d24ebd9..0000000
--- a/modules/flake/homeManagerModules.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- lib,
- flake-parts-lib,
- ...
-}: let
- inherit (lib) mkOption types;
- inherit (flake-parts-lib) mkSubmoduleOptions;
-in {
- options = {
- flake = mkSubmoduleOptions {
- homeManagerModules = mkOption {
- type = types.lazyAttrsOf types.unspecified;
- default = {};
- description = ''
- Home Manager modules
- '';
- };
- };
- };
-}
diff --git a/modules/flake/hydraJobs.nix b/modules/flake/hydraJobs.nix
deleted file mode 100644
index cfe9ca7..0000000
--- a/modules/flake/hydraJobs.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- lib,
- flake-parts-lib,
- ...
-}: let
- inherit (lib) mkOption types;
- inherit (flake-parts-lib) mkSubmoduleOptions;
-in {
- options = {
- flake = mkSubmoduleOptions {
- hydraJobs = mkOption {
- type = types.lazyAttrsOf types.raw;
- default = {};
- description = ''
- A collection of jobsets for Hydra. See https://nixos.wiki/wiki/Hydra#Flake_jobset
- '';
- example = ''
- {
- inherit (self) packages;
- }
- '';
- };
- };
- };
-}
diff --git a/pkgs/all-packages.nix b/pkgs/all-packages.nix
deleted file mode 100644
index 3dddad5..0000000
--- a/pkgs/all-packages.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-final: prev: let
- inherit (prev) callPackage;
-in {
- cfspeedtest = callPackage ./cfspeedtest.nix {};
-
- check-pr = callPackage ./check-pr.nix {};
-
- clippy-sarif = callPackage ./clippy-sarif.nix {};
-
- huion = callPackage ./huion.nix {};
-
- klassy = prev.libsForQt5.callPackage ./klassy.nix {};
-
- mommy = callPackage ./mommy.nix {};
-
- nixgc = callPackage ./nixgc.nix {};
-
- modrinth-app-unwrapped = callPackage ./modrinth-app {
- inherit (final.nodePackages or prev.nodePackages) pnpm;
- inherit ((final.darwin or prev.darwin).apple_sdk.frameworks) CoreServices Security WebKit;
- };
-
- modrinth-app = callPackage ./modrinth-app/wrapper.nix {
- inherit (final) modrinth-app-unwrapped;
- };
-
- treefetch = callPackage ./treefetch.nix {};
-
- swhkd = callPackage ./swhkd {};
-
- vim-just = callPackage ./vim-just.nix {};
-
- xwaylandvideobridge = callPackage ./xwaylandvideobridge.nix {};
-}
diff --git a/pkgs/cfspeedtest.nix b/pkgs/cfspeedtest/default.nix
index be357c5..be357c5 100644
--- a/pkgs/cfspeedtest.nix
+++ b/pkgs/cfspeedtest/default.nix
diff --git a/pkgs/check-pr.nix b/pkgs/check-pr/default.nix
index b199669..b199669 100644
--- a/pkgs/check-pr.nix
+++ b/pkgs/check-pr/default.nix
diff --git a/pkgs/clippy-sarif.nix b/pkgs/clippy-sarif/default.nix
index 11a611c..11a611c 100644
--- a/pkgs/clippy-sarif.nix
+++ b/pkgs/clippy-sarif/default.nix
diff --git a/pkgs/default.nix b/pkgs/default.nix
index b54c0fa..dc2f208 100644
--- a/pkgs/default.nix
+++ b/pkgs/default.nix
@@ -1,24 +1,20 @@
-{self, ...}: {
- perSystem = {
- lib,
- pkgs,
- system,
- ...
- }: {
- packages = let
- inherit (builtins) elem;
- inherit (lib) filterAttrs fix;
+final: prev:
+with prev; let
+ # directories are mapped to packages here for convenience sake
+ shouldUse = name: type: !(lib.hasPrefix "_" name) && type == "directory";
+ dir = lib.filterAttrs shouldUse (builtins.readDir ./.);
+ imported = lib.mapAttrs (name: _: callPackage ./${name} {}) dir;
+in
+ imported
+ // {
+ klassy = libsForQt5.callPackage ./klassy {};
- unfiltered = fix (final: self.overlays.default final pkgs);
+ modrinth-app-unwrapped = callPackage ./modrinth-app {
+ inherit (final.nodePackages or prev.nodePackages) pnpm;
+ inherit ((final.darwin or prev.darwin).apple_sdk.frameworks) CoreServices Security WebKit;
+ };
- p = filterAttrs (_: v:
- elem system (v.meta.platforms or []) && !(v.meta.broken or false))
- unfiltered;
- in
- p // {default = p.treefetch;};
- };
-
- flake = {
- overlays.default = final: prev: (import ./all-packages.nix final prev);
- };
-}
+ modrinth-app = callPackage ./modrinth-app/wrapper.nix {
+ inherit (final) modrinth-app-unwrapped;
+ };
+ }
diff --git a/pkgs/huion.nix b/pkgs/huion/default.nix
index 5e22340..5e22340 100644
--- a/pkgs/huion.nix
+++ b/pkgs/huion/default.nix
diff --git a/pkgs/klassy.nix b/pkgs/klassy/default.nix
index b5a5c0f..b5a5c0f 100644
--- a/pkgs/klassy.nix
+++ b/pkgs/klassy/default.nix
diff --git a/pkgs/mommy.nix b/pkgs/mommy/default.nix
index c8938e9..c8938e9 100644
--- a/pkgs/mommy.nix
+++ b/pkgs/mommy/default.nix
diff --git a/pkgs/nixgc.nix b/pkgs/nixgc/default.nix
index d13614a..d13614a 100644
--- a/pkgs/nixgc.nix
+++ b/pkgs/nixgc/default.nix
diff --git a/pkgs/treefetch.nix b/pkgs/treefetch/default.nix
index dd8283a..dd8283a 100644
--- a/pkgs/treefetch.nix
+++ b/pkgs/treefetch/default.nix
diff --git a/pkgs/vim-just.nix b/pkgs/vim-just/default.nix
index eafa434..eafa434 100644
--- a/pkgs/vim-just.nix
+++ b/pkgs/vim-just/default.nix
diff --git a/pkgs/xwaylandvideobridge.nix b/pkgs/xwaylandvideobridge/default.nix
index 3c1fef9..3c1fef9 100644
--- a/pkgs/xwaylandvideobridge.nix
+++ b/pkgs/xwaylandvideobridge/default.nix
diff --git a/templates/default.nix b/templates/default.nix
deleted file mode 100644
index 6ea1be4..0000000
--- a/templates/default.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- flake = {
- templates = let
- # string -> string -> {}
- mkTemplate = name: description: {
- path = ./${name};
- inherit description;
- };
- in {
- basic = mkTemplate "basic" "minimal boilerplate for my flakes";
- full = mkTemplate "full" "big template for complex flakes (using flake-parts)";
- nixos = mkTemplate "nixos" "minimal boilerplate for flake-based nixos configuration";
- };
- };
-}