-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathflake.nix
64 lines (55 loc) · 1.4 KB
/
flake.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
{
description = "git-nomad";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils }: let
eachSystem = fn: flake-utils.lib.eachDefaultSystem (system:
fn nixpkgs.legacyPackages.${system}
);
in eachSystem (pkgs: let
gitNomadPkg = with pkgs; rustPlatform.buildRustPackage rec {
pname = "git-nomad";
version = self.shortRev or self.dirtyShortRev;
src = self;
cargoLock = {
lockFile = ./Cargo.lock;
};
buildInputs = lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.SystemConfiguration
];
preBuild = ''
export GIT_NOMAD_BUILD_VERSION='${version}'
'';
nativeCheckInputs = [
git
];
};
in {
devShells.default = pkgs.mkShell {
buildInputs = with pkgs; [
asciinema
cargo
cargo-llvm-cov
cargo-outdated
clippy
gdb
just
rustc
rustfmt
shellcheck
];
shellHook = ''
export LLVM_COV='${pkgs.cargo-llvm-cov.LLVM_COV}'
export LLVM_PROFDATA='${pkgs.cargo-llvm-cov.LLVM_PROFDATA}'
'';
};
checks.git-nomad = gitNomadPkg;
packages.default = gitNomadPkg;
apps.default = {
type = "app";
program = "${gitNomadPkg}/bin/git-nomad";
};
});
}