Skip to content

Commit b4ecfdf

Browse files
committed
chore: add flake
1 parent 4176ed6 commit b4ecfdf

File tree

3 files changed

+205
-0
lines changed

3 files changed

+205
-0
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
/target
2+
/result
23
.kvsd

flake.lock

+121
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

flake.nix

+83
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
{
2+
description = "syndicationd";
3+
4+
inputs = {
5+
nixpkgs.url = "github:NixOS/nixpkgs/release-23.11";
6+
7+
fenix = {
8+
url = "github:nix-community/fenix";
9+
inputs.nixpkgs.follows = "nixpkgs";
10+
};
11+
12+
crane = {
13+
url = "github:ipetkov/crane";
14+
inputs.nixpkgs.follows = "nixpkgs";
15+
};
16+
17+
flake-utils.url = "github:numtide/flake-utils";
18+
};
19+
20+
outputs = { self, nixpkgs, fenix, crane, flake-utils, ... }:
21+
flake-utils.lib.eachDefaultSystem (system:
22+
let
23+
overlays = [ fenix.overlays.default ];
24+
pkgs = import nixpkgs { inherit system overlays; };
25+
rustToolchain = fenix.packages.${system}.fromToolchainFile {
26+
file = ./rust-toolchain.toml;
27+
# sha256 = pkgs.lib.fakeSha256;
28+
sha256 = "sha256-SXRtAuO4IqNOQq+nLbrsDFbVk+3aVA8NNpSZsKlVH/8=";
29+
};
30+
31+
craneLib = crane.lib.${system}.overrideToolchain rustToolchain;
32+
src = craneLib.cleanCargoSource (craneLib.path ./.);
33+
34+
commonArgs = {
35+
inherit src;
36+
strictDeps = true;
37+
38+
# pname and version required, so set dummpy values
39+
pname = "syndicationd-workspace";
40+
version = "0.1";
41+
42+
builtInputs = [ ] ++ pkgs.lib.optionals pkgs.stdenv.isDarwin [ ];
43+
};
44+
45+
cargoArtifacts = craneLib.buildDepsOnly commonArgs;
46+
47+
syndtermCrate = craneLib.crateNameFromCargoToml {
48+
cargoToml = ./syndterm/Cargo.toml;
49+
};
50+
syndterm = craneLib.buildPackage (commonArgs // {
51+
inherit cargoArtifacts;
52+
inherit (syndtermCrate) pname version;
53+
cargoExtraArgs = "--package ${syndtermCrate.pname}";
54+
});
55+
56+
checks = {
57+
inherit syndterm;
58+
59+
clippy = craneLib.cargoClippy (commonArgs // {
60+
inherit cargoArtifacts;
61+
cargoClippyExtraArgs = "--workspace -- --deny warnings";
62+
});
63+
64+
fmt = craneLib.cargoFmt commonArgs;
65+
};
66+
in {
67+
inherit checks;
68+
69+
packages.default = self.packages."${system}".syndterm;
70+
packages.syndterm = syndterm;
71+
72+
devShells.default = craneLib.devShell {
73+
packages = with pkgs; [
74+
# cargo and rustc provided by default
75+
just
76+
cargo-nextest
77+
graphql-client
78+
nixfmt
79+
rust-analyzer
80+
];
81+
};
82+
});
83+
}

0 commit comments

Comments
 (0)