Allow self-references in top-level package list

It now allows for package to use our own packages easily.

Though, having a recursive attribute set can be easier, setting our
package list this way is easier to maintain in the long-term since it is
a set-and-forget setup. The only disadvantage I can see is the need to
re-review what the hell the code is doing depending on my familiarity
for Nix in the future. ;p
This commit is contained in:
Gabriel Arazas 2022-01-18 18:21:20 +08:00
parent 3148121bf6
commit 8b5fd926ec

View File

@ -1,27 +1,33 @@
{ pkgs ? import <nixpkgs> { } }:
{ pkgs ? import <nixpkgs> { }, overrides ? (self: super: { }) }:
with pkgs; {
doggo = callPackage ./doggo.nix { };
gnome-shell-extension-pop-shell =
callPackage ./gnome-shell-extension-pop-shell.nix { };
gnome-shell-extension-burn-my-windows =
callPackage ./gnome-shell-extension-burn-my-windows.nix { };
gnome-shell-extension-desktop-cube =
callPackage ./gnome-shell-extension-desktop-cube.nix { };
gnome-shell-extension-fly-pie =
callPackage ./gnome-shell-extension-fly-pie.nix { };
guile-config = callPackage ./guile-config.nix { };
guile-hall = callPackage ./guile-hall.nix { };
junction = callPackage ./junction.nix { };
libcs50 = callPackage ./libcs50.nix { };
llama = callPackage ./llama.nix { };
neo = callPackage ./neo.nix { };
pop-launcher = callPackage ./pop-launcher.nix { };
pop-launcher-plugin-duckduckgo-bangs =
callPackage ./pop-launcher-plugin-duckduckgo-bangs.nix { };
photon-rss = callPackage ./photon-rss.nix { };
ratt = callPackage ./ratt.nix { };
tic-80 = callPackage ./tic-80 { };
sioyek = libsForQt5.callPackage ./sioyek.nix { };
vpaint = libsForQt5.callPackage ./vpaint.nix { };
}
with pkgs;
let
packages = self:
let callPackage = newScope self;
in {
doggo = callPackage ./doggo.nix { };
gnome-shell-extension-burn-my-windows =
callPackage ./gnome-shell-extension-burn-my-windows.nix { };
gnome-shell-extension-desktop-cube =
callPackage ./gnome-shell-extension-desktop-cube.nix { };
gnome-shell-extension-fly-pie =
callPackage ./gnome-shell-extension-fly-pie.nix { };
gnome-shell-extension-pop-shell =
callPackage ./gnome-shell-extension-pop-shell.nix { };
guile-config = callPackage ./guile-config.nix { };
guile-hall = callPackage ./guile-hall.nix { };
junction = callPackage ./junction.nix { };
libcs50 = callPackage ./libcs50.nix { };
llama = callPackage ./llama.nix { };
neo = callPackage ./neo.nix { };
pop-launcher = callPackage ./pop-launcher.nix { };
pop-launcher-plugin-duckduckgo-bangs =
callPackage ./pop-launcher-plugin-duckduckgo-bangs.nix { };
photon-rss = callPackage ./photon-rss.nix { };
ratt = callPackage ./ratt.nix { };
tic-80 = callPackage ./tic-80 { };
sioyek = libsForQt5.callPackage ./sioyek.nix { };
vpaint = libsForQt5.callPackage ./vpaint.nix { };
};
in lib.fix (lib.extends overrides packages)