From aad424b4ba9989be4536390749ad0de351dd13ef Mon Sep 17 00:00:00 2001 From: seth Date: Fri, 15 Dec 2023 02:40:21 -0500 Subject: flake: move nix to folder to nix/ --- nix/derivation.nix | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 nix/derivation.nix (limited to 'nix/derivation.nix') diff --git a/nix/derivation.nix b/nix/derivation.nix new file mode 100644 index 0000000..061baea --- /dev/null +++ b/nix/derivation.nix @@ -0,0 +1,58 @@ +{ + lib, + stdenv, + naersk, + CoreFoundation, + Security, + SystemConfiguration, + self, + lto ? false, + optimizeSize ? false, +}: let + filter = path: type: let + path' = toString path; + base = baseNameOf path'; + parent = baseNameOf (dirOf path'); + + dirBlocklist = ["parts"]; + + matches = lib.any (suffix: lib.hasSuffix suffix base) [".rs"]; + isCargo = base == "Cargo.lock" || base == "Cargo.toml"; + isCopypasta = parent == "copypastas"; + isAllowedDir = !(builtins.elem base dirBlocklist); + in + (type == "directory" && isAllowedDir) || matches || isCargo || isCopypasta; + + filterSource = src: + lib.cleanSourceWith { + src = lib.cleanSource src; + inherit filter; + }; +in + naersk.buildPackage { + pname = "teawiebot"; + version = builtins.substring 0 8 self.lastModifiedDate or "dirty"; + + src = filterSource ../.; + + buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ + CoreFoundation + Security + SystemConfiguration + ]; + + GIT_SHA = builtins.substring 0 7 self.rev or "dirty"; + + RUSTFLAGS = + lib.optionalString lto " -C lto=thin -C embed-bitcode=yes" + + lib.optionalString optimizeSize " -C codegen-units=1 -C strip=symbols -C opt-level=z"; + + meta = with lib; { + mainProgram = "teawiebot"; + description = "funni bot"; + homepage = "https://github.com/getchoo/teawiebot"; + license = licenses.mit; + platforms = with platforms; linux ++ darwin; + maintainers = with maintainers; [getchoo]; + }; + } -- cgit v1.2.3