From 6c032e82b878d3ca0293dfd4297492efa3c938cb Mon Sep 17 00:00:00 2001 From: Grace Yoder Date: Thu, 10 Sep 2026 11:43:22 -0400 Subject: build: package for nix --- default.nix | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ flake.lock | 27 +++++++++++++++++++++++++++ flake.nix | 26 ++++++++++++++++++++++++++ 3 files changed, 101 insertions(+) create mode 100644 default.nix create mode 100644 flake.lock create mode 100644 flake.nix diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..00ca653 --- /dev/null +++ b/default.nix @@ -0,0 +1,48 @@ +{ + pkgs ? import { }, +}: + +pkgs.stdenv.mkDerivation { + pname = "tpb"; + version = "0.1.2"; + + src = pkgs.lib.fileset.toSource { + root = ./.; + fileset = pkgs.lib.fileset.unions [ + ./build.zig + ./build.zig.zon + ./src + ./LICENSE + ]; + }; + + nativeBuildInputs = [ + pkgs.zig_0_16 + ] + ++ pkgs.lib.optional pkgs.stdenv.hostPlatform.isLinux pkgs.makeWrapper; + + zigBuildFlags = pkgs.lib.optionals pkgs.stdenv.hostPlatform.isDarwin [ + "--sysroot" + "${pkgs.apple-sdk}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk" + ]; + + postFixup = pkgs.lib.optionalString pkgs.stdenv.hostPlatform.isLinux '' + wrapProgram "$out/bin/tpb" \ + --prefix PATH : ${ + pkgs.lib.makeBinPath [ + pkgs.wl-clipboard + pkgs.xclip + ] + } + ''; + + doCheck = false; + + meta = { + description = "Tee your Paste Board"; + homepage = "https://git.gae.moe/grace/tpb"; + license = pkgs.lib.licenses.mit; + mainProgram = "tpb"; + platforms = pkgs.lib.platforms.unix; + }; +} diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..49ced1a --- /dev/null +++ b/flake.lock @@ -0,0 +1,27 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1789012029, + "narHash": "sha256-1CBkBf+Nhggykzlx0jvXrj5rk20btl+tK8Fa8Ml/BL4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d5dfd8e6716dde34398bc14bc87c10dece9c8c68", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..ae417d4 --- /dev/null +++ b/flake.nix @@ -0,0 +1,26 @@ +{ + description = "Tee standard input into the system clipboard"; + + inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; + + outputs = { nixpkgs, ... }: + let + systems = [ + "aarch64-darwin" + "aarch64-linux" + "x86_64-linux" + ]; + forAllSystems = nixpkgs.lib.genAttrs systems; + in + { + packages = forAllSystems (system: + let + pkgs = nixpkgs.legacyPackages.${system}; + tpb = import ./default.nix { inherit pkgs; }; + in + { + inherit tpb; + default = tpb; + }); + }; +} -- cgit v1.3.1