@@ -15,25 +15,41 @@
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
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
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;
32− packages.helix = naerskLib.buildPackage {
34+ naerskLib.buildPackage {
33 pname = "helix";
35 pname = "helix";
34 root = inputs.helix;
36 root = inputs.helix;
39+ in flake-utils.lib.eachDefaultSystem (system:
41+ pkgs = import nixpkgs {
43+ overlays = [ rust-overlay.overlay ];
45+ naerskLib = mkNaerskLib system pkgs;
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 { };
51+ overlay = final: prev:
52+ let naerskLib = mkNaerskLib prev.system final;
53+ in (rust-overlay.overlay final prev) // { helix = pkg naerskLib; };