clean up flake.nix

This commit is contained in:
figsoda 2021-10-31 22:54:19 -04:00
parent 31bd39c75b
commit a2629a3def
2 changed files with 86 additions and 112 deletions

View File

@ -1,8 +1,31 @@
{
"nodes": {
"fenix": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"rust-analyzer-src": "rust-analyzer-src"
},
"locked": {
"lastModified": 1635661416,
"narHash": "sha256-8Bu1EdrPpGl4w1qlGGxlnEgYdkGkQpT4/4ZTq3z+1as=",
"owner": "nix-community",
"repo": "fenix",
"rev": "1b311df00378e8e9ddc824983220e5ce644a8215",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "fenix",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": "nixpkgs"
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1635165013,
@ -18,52 +41,7 @@
"type": "github"
}
},
"import-cargo": {
"locked": {
"lastModified": 1594305518,
"narHash": "sha256-frtArgN42rSaEcEOYWg8sVPMUK+Zgch3c+wejcpX3DY=",
"owner": "edolstra",
"repo": "import-cargo",
"rev": "25d40be4a73d40a2572e0cc233b83253554f06c5",
"type": "github"
},
"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",
"type": "github"
},
"original": {
"owner": "mozilla",
"repo": "nixpkgs-mozilla",
"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"
}
}
},

106
flake.nix
View File

@ -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,56 +32,42 @@
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
{
overlay = final: prev: {
statix = with final; (makeRustPlatform {
inherit (rustChannel final) cargo rustc;
}).buildRustPackage rec {
pname = "statix";
version = (lib.importTOML ./bin/Cargo.toml).package.version;
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
'';
src = gitignoreSource ./.;
meta = with pkgs.lib; {
description = "Lints and suggestions for the Nix programming language";
homepage = "https://git.peppe.rs/languages/statix/about";
license = licenses.mit;
};
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;
};
statix-vim =
with final; pkgs.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;
});
};
}