From a2629a3defe901c93c029bfba44bb11c9abe5cef Mon Sep 17 00:00:00 2001 From: figsoda Date: Sun, 31 Oct 2021 22:54:19 -0400 Subject: clean up flake.nix --- flake.lock | 92 ++++++++++++++++++++++++---------------------------- flake.nix | 108 +++++++++++++++++++++++++------------------------------------ 2 files changed, 87 insertions(+), 113 deletions(-) diff --git a/flake.lock b/flake.lock index d6c75e8..5e46066 100644 --- a/flake.lock +++ b/flake.lock @@ -1,69 +1,47 @@ { "nodes": { - "gitignore": { + "fenix": { "inputs": { - "nixpkgs": "nixpkgs" + "nixpkgs": [ + "nixpkgs" + ], + "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1635165013, - "narHash": "sha256-o/BdVjNwcB6jOmzZjOH703BesSkkS5O7ej3xhyO8hAY=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "5b9e0ff9d3b551234b4f3eb3983744fa354b17f1", + "lastModified": 1635661416, + "narHash": "sha256-8Bu1EdrPpGl4w1qlGGxlnEgYdkGkQpT4/4ZTq3z+1as=", + "owner": "nix-community", + "repo": "fenix", + "rev": "1b311df00378e8e9ddc824983220e5ce644a8215", "type": "github" }, "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", + "owner": "nix-community", + "repo": "fenix", "type": "github" } }, - "import-cargo": { - "locked": { - "lastModified": 1594305518, - "narHash": "sha256-frtArgN42rSaEcEOYWg8sVPMUK+Zgch3c+wejcpX3DY=", - "owner": "edolstra", - "repo": "import-cargo", - "rev": "25d40be4a73d40a2572e0cc233b83253554f06c5", - "type": "github" + "gitignore": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] }, - "original": { - "owner": "edolstra", - "repo": "import-cargo", - "type": "github" - } - }, - "mozillapkgs": { - "flake": false, "locked": { - "lastModified": 1629225446, - "narHash": "sha256-HJX4Pc5ZUAg4apxB/XHuJ+6ukzvRQqeZMjscOBst2bA=", - "owner": "mozilla", - "repo": "nixpkgs-mozilla", - "rev": "0510159186dd2ef46e5464484fbdf119393afa58", + "lastModified": 1635165013, + "narHash": "sha256-o/BdVjNwcB6jOmzZjOH703BesSkkS5O7ej3xhyO8hAY=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "5b9e0ff9d3b551234b4f3eb3983744fa354b17f1", "type": "github" }, "original": { - "owner": "mozilla", - "repo": "nixpkgs-mozilla", + "owner": "hercules-ci", + "repo": "gitignore.nix", "type": "github" } }, "nixpkgs": { - "locked": { - "lastModified": 1632846328, - "narHash": "sha256-sFi6YtlGK30TBB9o6CW7LG9mYHkgtKeWbSLAjjrNTX0=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "2b71ddd869ad592510553d09fe89c9709fa26b2b", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "type": "indirect" - } - }, - "nixpkgs_2": { "locked": { "lastModified": 1633422745, "narHash": "sha256-gA6Ok64nPbkjHk3Oanq4641EeYkjcKhisDF9wBjLxEk=", @@ -81,10 +59,26 @@ }, "root": { "inputs": { + "fenix": "fenix", "gitignore": "gitignore", - "import-cargo": "import-cargo", - "mozillapkgs": "mozillapkgs", - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs" + } + }, + "rust-analyzer-src": { + "flake": false, + "locked": { + "lastModified": 1635274542, + "narHash": "sha256-Cew1/WUozM3jalItPuj4cNN8GIFMvCaJ1KXoj6wrHwE=", + "owner": "rust-analyzer", + "repo": "rust-analyzer", + "rev": "dd43f3f2d13a32199828e758ddf13176df1f17f9", + "type": "github" + }, + "original": { + "owner": "rust-analyzer", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" } } }, diff --git a/flake.nix b/flake.nix index 702e818..439f076 100644 --- a/flake.nix +++ b/flake.nix @@ -3,27 +3,25 @@ nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; - mozillapkgs = { - url = "github:mozilla/nixpkgs-mozilla"; - flake = false; + fenix = { + url = "github:nix-community/fenix"; + inputs.nixpkgs.follows = "nixpkgs"; }; - import-cargo.url = "github:edolstra/import-cargo"; - - gitignore.url = "github:hercules-ci/gitignore.nix"; + gitignore = { + url = "github:hercules-ci/gitignore.nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = { self , nixpkgs - , mozillapkgs - , import-cargo + , fenix , gitignore - , ... }: let - inherit (import-cargo.builders) importCargo; inherit (gitignore.lib) gitignoreSource; supportedSystems = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ]; @@ -34,57 +32,43 @@ overlays = [ self.overlay ]; }); - mozilla = p: p.callPackage (mozillapkgs + "/package-set.nix") { }; chanspec = { - date = "2021-09-30"; + date = "2021-11-01"; channel = "nightly"; - sha256 = "Elqn7GDBDE/QT1XTDyj0EvivbC//uwjWX8d+J3Pi0dY="; # set zeros after modifying channel or date + sha256 = "2BmxGawDNjXHJvnQToxmErMGgEPOfVzUvxhkvuixHYU="; # set zeros after modifying channel or date }; - rustChannel = p: (mozilla p).rustChannelOf chanspec; + rustChannel = p: (fenix.overlay p p).fenix.toolchainOf chanspec; in { - overlay = final: prev: - let - inherit (rustChannel final.pkgs) rust rust-src; - in - { - - statix = with final; pkgs.stdenv.mkDerivation { - pname = "statix"; - version = "v0.3.4"; - src = gitignoreSource ./.; - nativeBuildInputs = [ - (importCargo { lockFile = ./Cargo.lock; inherit pkgs; }).cargoHome - rust - cargo - ] ++ lib.optionals stdenv.isDarwin [ libiconv ]; - buildPhase = '' - cargo build -p statix --all-features --release --offline - ''; - # statix does not have any tests currently - doCheck = false; - installPhase = '' - install -Dm775 ./target/release/statix $out/bin/statix - ''; - - meta = with pkgs.lib; { - description = "Lints and suggestions for the Nix programming language"; - homepage = "https://git.peppe.rs/languages/statix/about"; - license = licenses.mit; - }; - }; + overlay = final: prev: { + statix = with final; (makeRustPlatform { + inherit (rustChannel final) cargo rustc; + }).buildRustPackage rec { + pname = "statix"; + version = (lib.importTOML ./bin/Cargo.toml).package.version; + + src = gitignoreSource ./.; - statix-vim = - with final; pkgs.vimUtils.buildVimPlugin { - pname = "statix-vim"; - version = "0.1.0"; - src = ./vim-plugin; - }; + cargoLock.lockFile = ./Cargo.lock; + meta = with lib; { + description = "Lints and suggestions for the Nix programming language"; + homepage = "https://git.peppe.rs/languages/statix/about"; + license = licenses.mit; + }; }; + statix-vim = + with final; vimUtils.buildVimPlugin { + pname = "statix-vim"; + version = "0.1.0"; + src = ./vim-plugin; + }; + + }; + packages = forAllSystems (system: { inherit (nixpkgsFor."${system}") statix statix-vim; }); @@ -92,31 +76,27 @@ defaultPackage = forAllSystems (system: self.packages."${system}".statix); - defaultApp = forAllSystems (system: - { - type = "app"; - program = "${self.packages."${system}".statix}/bin/statix"; - }); - devShell = forAllSystems (system: let pkgs = nixpkgsFor."${system}"; - inherit (rustChannel pkgs) rust rust-src rust-analysis; + toolchain = (rustChannel pkgs).withComponents [ + "rustc" + "cargo" + "rust-std" + "rustfmt" + "clippy" + "rust-src" + ]; in with pkgs; mkShell rec { - buildInputs = [ - rustfmt - cargo + nativeBuildInputs = [ cargo-watch - rust - rust-src + toolchain ]; - RUST_SRC_PATH = "${rust-src}/lib/rustlib/src/rust/library"; RUST_LOG = "info"; RUST_BACKTRACE = 1; }); - }; } -- cgit v1.2.3