34 lines
1.1 KiB
Nix
34 lines
1.1 KiB
Nix
|
{ inputs ? import ../../inputs.nix {}}:
|
||
|
|
||
|
let
|
||
|
nixos-cosmic = inputs.cosmic-modules;
|
||
|
cosmicPkgsMainDir = builtins.readDir "${nixos-cosmic}/pkgs";
|
||
|
cosmicPkgsDirs = builtins.filter (v: cosmicPkgsMainDir."${v}" == "directory") (builtins.attrNames cosmicPkgsMainDir);
|
||
|
|
||
|
# FIXME: use unstable nixpkgs when rust 1.80 will be available in unstable
|
||
|
stagingNixpkgsSrc = builtins.fetchTarball {
|
||
|
name = "nixpkgs";
|
||
|
url = "https://github.com/NixOS/nixpkgs/archive/b79cec4237cd0f655562890bf927466c68b48d68.tar.gz";
|
||
|
sha256 = "1mswisq9iwffg2d6rfxvr27mvi4w853d9rn222s2g76445d0iqh8";
|
||
|
};
|
||
|
cosmicOverlay = self: super: builtins.listToAttrs (
|
||
|
builtins.map (v: {name = v; value = self.callPackage "${nixos-cosmic}/pkgs/${v}/package.nix" {};}) cosmicPkgsDirs
|
||
|
);
|
||
|
in
|
||
|
|
||
|
self: super:
|
||
|
|
||
|
let
|
||
|
stagingNixpkgs = import stagingNixpkgsSrc {
|
||
|
localSystem = self.stdenv.buildPlatform;
|
||
|
config = self.config;
|
||
|
overlays = [ cosmicOverlay ];
|
||
|
} // (if self.stdenv.buildPlatform == self.stdenv.hostPlatform then {} else {
|
||
|
crossSystem = self.stdenv.hostPlatform;
|
||
|
});
|
||
|
in
|
||
|
|
||
|
builtins.listToAttrs (
|
||
|
builtins.map (v: {name = v; value = stagingNixpkgs.${v};}) cosmicPkgsDirs
|
||
|
)
|