on master help sign in
add overlay
6937838Timothy DeHerrera
flake.nix+29−13
@@ -15,25 +15,41 @@
15 };
15 };
16
16
17 outputs = inputs@{ self, nixpkgs, naersk, rust-overlay, flake-utils, ... }:
17 outputs = inputs@{ self, nixpkgs, naersk, rust-overlay, flake-utils, ... }:
18− flake-utils.lib.eachDefaultSystem (system:
18+ let
19− let
19+ rust = pkgs:
20− pkgs = import nixpkgs { inherit system; overlays = [ rust-overlay.overlay ]; };
21− rust = (pkgs.rustChannelOf {
20+ (pkgs.rustChannelOf {
22− date = "2021-05-01";
21+ date = "2021-05-01";
23− channel = "nightly";
22+ channel = "nightly";
24 }).minimal; # cargo, rustc and rust-std
23 }).minimal; # cargo, rustc and rust-std
24+
25+ mkNaerskLib = system: pkgs:
25− naerskLib = naersk.lib."${system}".override {
26+ naersk.lib."${system}".override {
26 # naersk can't build with stable?!
27 # naersk can't build with stable?!
27 # inherit (pkgs.rust-bin.stable.latest) rustc cargo;
28 # inherit (pkgs.rust-bin.stable.latest) rustc cargo;
28− rustc = rust;
29+ rustc = rust pkgs;
29− cargo = rust;
30+ cargo = rust pkgs;
30 };
31 };
31− in rec {
32+
33+ pkg = naerskLib:
32− packages.helix = naerskLib.buildPackage {
34+ naerskLib.buildPackage {
33 pname = "helix";
35 pname = "helix";
34 root = inputs.helix;
36 root = inputs.helix;
35 };
37 };
38+
39+ in flake-utils.lib.eachDefaultSystem (system:
40+ let
41+ pkgs = import nixpkgs {
42+ inherit system;
43+ overlays = [ rust-overlay.overlay ];
44+ };
45+ naerskLib = mkNaerskLib system pkgs;
46+ in rec {
47+ packages.helix = pkg naerskLib;
36 defaultPackage = packages.helix;
48 defaultPackage = packages.helix;
37− devShell = pkgs.callPackage ./shell.nix {};
49+ devShell = pkgs.callPackage ./shell.nix { };
38− });
50+ }) // {
51+ overlay = final: prev:
52+ let naerskLib = mkNaerskLib prev.system final;
53+ in (rust-overlay.overlay final prev) // { helix = pkg naerskLib; };
54+ };
39}
55}