Compare commits
1 Commits
Author | SHA1 | Date |
---|---|---|
|
7d39b44e6a |
26
flake.nix
26
flake.nix
|
@ -21,7 +21,6 @@
|
||||||
(import ./overlay.nix)
|
(import ./overlay.nix)
|
||||||
(import "${lix-module}/overlay.nix" { inherit lix; })
|
(import "${lix-module}/overlay.nix" { inherit lix; })
|
||||||
];
|
];
|
||||||
forAllSystems = nixpkgs.lib.genAttrs nixpkgs.lib.systems.flakeExposed;
|
|
||||||
in {
|
in {
|
||||||
# we don't just use nix.registry.whatever.flake = self
|
# we don't just use nix.registry.whatever.flake = self
|
||||||
# the reason for this is to be able to handle a flake.lock containing an entry for this
|
# the reason for this is to be able to handle a flake.lock containing an entry for this
|
||||||
|
@ -43,6 +42,8 @@
|
||||||
meta.path-entry = "dragnpkgs-unstable=flake:dragnpkgs-unstable";
|
meta.path-entry = "dragnpkgs-unstable=flake:dragnpkgs-unstable";
|
||||||
|
|
||||||
lib = nixpkgs.lib.extend (final: prev: {
|
lib = nixpkgs.lib.extend (final: prev: {
|
||||||
|
forAllSystems = final.genAttrs final.systems.flakeExposed;
|
||||||
|
|
||||||
licenses = prev.licenses // { fyptl = import ./lib/licenses/fyptl.nix; };
|
licenses = prev.licenses // { fyptl = import ./lib/licenses/fyptl.nix; };
|
||||||
|
|
||||||
nixosSystem = args:
|
nixosSystem = args:
|
||||||
|
@ -172,26 +173,13 @@
|
||||||
} // builtins.removeAttrs args [ "modules" ]
|
} // builtins.removeAttrs args [ "modules" ]
|
||||||
);
|
);
|
||||||
|
|
||||||
mkFlake = flakeDef:
|
mkFlake = import ./lib/mkflake/default.nix {
|
||||||
let
|
pkgs = system: self.legacyPackages.${system};
|
||||||
rewritePerSystem = sectionDef: (forAllSystems (system:
|
lib = final;
|
||||||
builtins.mapAttrs (name: value:
|
};
|
||||||
if final.isDerivation value then
|
|
||||||
value
|
|
||||||
else
|
|
||||||
self.legacyPackages.${system}.callPackage value {}
|
|
||||||
) sectionDef
|
|
||||||
));
|
|
||||||
in
|
|
||||||
builtins.mapAttrs (name: value:
|
|
||||||
if name == "packages" || name == "legacyPackages" || name == "devShells" then
|
|
||||||
rewritePerSystem value
|
|
||||||
else
|
|
||||||
value
|
|
||||||
) flakeDef;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
legacyPackages = forAllSystems (system:
|
legacyPackages = self.lib.forAllSystems (system:
|
||||||
let
|
let
|
||||||
unsafeConf = if builtins.hasAttr "extraBuiltins" builtins then (
|
unsafeConf = if builtins.hasAttr "extraBuiltins" builtins then (
|
||||||
let conf = builtins.extraBuiltins; in
|
let conf = builtins.extraBuiltins; in
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
{ pkgs, lib }:
|
||||||
|
flakeDef:
|
||||||
|
let
|
||||||
|
rewritePerSystem = final: sectionDef:
|
||||||
|
lib.forAllSystems (system:
|
||||||
|
builtins.mapAttrs (name: value:
|
||||||
|
if lib.isDerivation value then
|
||||||
|
value
|
||||||
|
else
|
||||||
|
(pkgs system).callPackage value { self = (final system); }
|
||||||
|
) sectionDef
|
||||||
|
);
|
||||||
|
rewriteAttr = final: name: value:
|
||||||
|
let
|
||||||
|
final_self = system: (builtins.mapAttrs (aname: avalue:
|
||||||
|
if aname == "packages" || aname == "legacyPackages" || aname == "devShells" then
|
||||||
|
avalue.${system}
|
||||||
|
else
|
||||||
|
avalue
|
||||||
|
) final);
|
||||||
|
in
|
||||||
|
if name == "packages" || name == "legacyPackages" || name == "devShells" then
|
||||||
|
rewritePerSystem final_self value
|
||||||
|
else
|
||||||
|
value;
|
||||||
|
self = builtins.mapAttrs (rewriteAttr self) flakeDef;
|
||||||
|
in
|
||||||
|
self
|
Loading…
Reference in New Issue