summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pkgs/all-packages.nix47
-rw-r--r--pkgs/default.nix15
-rw-r--r--templates/basic/default.nix25
-rw-r--r--templates/basic/flake.nix35
4 files changed, 63 insertions, 59 deletions
diff --git a/pkgs/all-packages.nix b/pkgs/all-packages.nix
index 6a8f12e..a8b5445 100644
--- a/pkgs/all-packages.nix
+++ b/pkgs/all-packages.nix
@@ -1,21 +1,28 @@
-pkgs: let
- inherit (pkgs) callPackage;
-in {
- # original packages
- cfspeedtest = callPackage ./cfspeedtest.nix {};
- check-pr = callPackage ./check-pr.nix {};
- fastfetch = callPackage ./fastfetch.nix {};
- huion = callPackage ./huion.nix {};
- klassy = pkgs.libsForQt5.callPackage ./klassy.nix {};
- mommy = callPackage ./mommy.nix {};
- nixgc = callPackage ./nixgc.nix {};
- modrinth-app-unwrapped = callPackage ./modrinth-app {
- inherit (pkgs.nodePackages) pnpm;
- inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices Security WebKit;
+{
+ final ? {},
+ prev,
+}: let
+ inherit (prev) callPackage;
+ callPackage' =
+ final.callPackage or prev.lib.callPackageWith (prev // packages);
+
+ packages = {
+ cfspeedtest = callPackage ./cfspeedtest.nix {};
+ check-pr = callPackage ./check-pr.nix {};
+ fastfetch = callPackage ./fastfetch.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 (prev.nodePackages) pnpm;
+ inherit (prev.darwin.apple_sdk.frameworks) CoreServices Security WebKit;
+ };
+ modrinth-app = callPackage' ./modrinth-app/wrapper.nix {};
+ treefetch = callPackage ./treefetch.nix {};
+ swhkd = callPackage ./swhkd {};
+ vim-just = callPackage ./vim-just.nix {};
+ xwaylandvideobridge = callPackage ./xwaylandvideobridge.nix {};
};
- modrinth-app = callPackage ./modrinth-app/wrapper.nix {};
- treefetch = callPackage ./treefetch.nix {};
- swhkd = callPackage ./swhkd {};
- vim-just = callPackage ./vim-just.nix {};
- xwaylandvideobridge = callPackage ./xwaylandvideobridge.nix {};
-}
+in
+ packages
diff --git a/pkgs/default.nix b/pkgs/default.nix
index 8471def..cd49eb2 100644
--- a/pkgs/default.nix
+++ b/pkgs/default.nix
@@ -1,22 +1,13 @@
-{
- self,
- inputs,
- ...
-}: {
+_: {
perSystem = {
lib,
pkgs,
system,
...
}: {
- _module.args.pkgs = import inputs.nixpkgs {
- inherit system;
- overlays = [self.overlays.default];
- };
-
packages = let
p = let
- packages = import ./all-packages.nix pkgs;
+ packages = import ./all-packages.nix {prev = pkgs;};
in
lib.filterAttrs (_: v:
builtins.elem system (v.meta.platforms or []) && !(v.meta.broken or false))
@@ -25,5 +16,5 @@
p // {default = p.treefetch;};
};
- flake.overlays.default = final: _: import ./all-packages.nix final;
+ flake.overlays.default = final: prev: import ./all-packages.nix {inherit final prev;};
}
diff --git a/templates/basic/default.nix b/templates/basic/default.nix
new file mode 100644
index 0000000..5d0e6a1
--- /dev/null
+++ b/templates/basic/default.nix
@@ -0,0 +1,25 @@
+{
+ lib,
+ stdenv,
+ self,
+ version,
+ ...
+}:
+stdenv.mkDerivation {
+ pname = "hello";
+ inherit version;
+
+ src = self;
+
+ installPhase = ''
+ echo "hi" > $out
+ '';
+
+ meta = with lib; {
+ description = "";
+ homepage = "";
+ license = licenses.mit;
+ maintainers = [maintainers.getchoo];
+ platforms = platforms.linux;
+ };
+}
diff --git a/templates/basic/flake.nix b/templates/basic/flake.nix
index 32fd25b..17943a8 100644
--- a/templates/basic/flake.nix
+++ b/templates/basic/flake.nix
@@ -10,6 +10,7 @@
nixpkgs,
...
}: let
+ inherit (nixpkgs) lib;
version = builtins.substring 0 8 self.lastModifiedDate or "dirty";
systems = [
@@ -19,14 +20,13 @@
"aarch64-darwin"
];
- genSystems = nixpkgs.lib.genAttrs systems;
- nixpkgsFor = genSystems (system:
- import nixpkgs {
- inherit system;
- overlays = [self.overlays.default];
- });
-
+ genSystems = lib.genAttrs systems;
+ nixpkgsFor = genSystems (sys: nixpkgs.legacyPackages.${sys});
forAllSystems = fn: genSystems (sys: fn nixpkgsFor.${sys});
+
+ packageFn = pkgs: {
+ hello = pkgs.callPackage ./default.nix {inherit self version;};
+ };
in {
devShells = forAllSystems (pkgs: {
default = pkgs.mkShell {
@@ -43,25 +43,6 @@
default = pkgs.hello;
});
- overlays.default = _: prev: {
- hello = prev.stdenv.mkDerivation {
- pname = "hello";
- inherit version;
-
- src = self;
-
- installPhase = ''
- echo "hi" > $out
- '';
-
- meta = with prev.lib; {
- description = "";
- homepage = "";
- license = licenses.mit;
- maintainers = [maintainers.getchoo];
- platforms = platforms.linux;
- };
- };
- };
+ overlays.default = _: prev: (packageFn prev);
};
}