summaryrefslogtreecommitdiff
path: root/nix/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nix/package.nix')
-rw-r--r--nix/package.nix50
1 files changed, 50 insertions, 0 deletions
diff --git a/nix/package.nix b/nix/package.nix
new file mode 100644
index 0000000..2802233
--- /dev/null
+++ b/nix/package.nix
@@ -0,0 +1,50 @@
+{
+ lib,
+ rustPlatform,
+ version,
+ lto ? true,
+ optimizeSize ? false,
+}:
+rustPlatform.buildRustPackage {
+ pname = "nixpkgs-tracker-bot";
+ inherit version;
+
+ src = lib.fileset.toSource {
+ root = ../.;
+ fileset = lib.fileset.unions [
+ ../src
+ ../Cargo.toml
+ ../Cargo.lock
+ ];
+ };
+
+ cargoLock = {
+ lockFile = ../Cargo.lock;
+ allowBuiltinFetchGit = true;
+ };
+
+ env = let
+ toRustFlags = lib.mapAttrs' (
+ name:
+ lib.nameValuePair
+ "CARGO_BUILD_RELEASE_${lib.toUpper (builtins.replaceStrings ["-"] ["_"] name)}"
+ );
+ in
+ lib.optionalAttrs lto (toRustFlags {
+ lto = "thin";
+ })
+ // lib.optionalAttrs optimizeSize (toRustFlags {
+ codegen-units = 1;
+ opt-level = "s";
+ panic = "abort";
+ strip = "symbols";
+ });
+
+ meta = {
+ description = "A Discord app for tracking nixpkgs pull requests";
+ homepage = "https://github.com/getchoo/nixpkgs-tracker-bot";
+ mainProgram = "nixpkgs-tracker-bot";
+ license = lib.licenses.mit;
+ maintainers = [lib.maintainers.getchoo];
+ };
+}