From cc27056280834f8f81c1b63c9cc6837549bc56f9 Mon Sep 17 00:00:00 2001 From: rm-dr <96270320+rm-dr@users.noreply.github.com> Date: Wed, 11 Mar 2026 10:39:00 -0700 Subject: [PATCH] Add nix files --- default.nix | 50 +++++++++++++++++++++++++++++++++++++++++++++ flake.nix | 40 ++++++++++++++++++++++++++++++++++++ rust-toolchain.toml | 2 ++ 3 files changed, 92 insertions(+) create mode 100644 default.nix create mode 100644 flake.nix create mode 100644 rust-toolchain.toml diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..fc9a712 --- /dev/null +++ b/default.nix @@ -0,0 +1,50 @@ +let + rustOverlay = import ( + builtins.fetchTarball { + url = "https://github.com/oxalica/rust-overlay/archive/master.tar.gz"; + sha256 = "0qgrkgc695a7gja83dngxrcx4gdg9056gvg5325i5yyjxg0ni6c9"; + } + ); + pkgsDefault = import { overlays = [ rustOverlay ]; }; + rustToolchain = pkgsDefault.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml; + rustPlatformDefault = pkgsDefault.makeRustPlatform { + cargo = rustToolchain; + rustc = rustToolchain; + }; +in +{ + pkgs ? pkgsDefault, + rustPlatform ? rustPlatformDefault, +}: + +rustPlatform.buildRustPackage { + pname = "pile"; + version = "0.0.1"; + src = ./.; + + cargoLock.lockFile = ./Cargo.lock; + + buildInputs = [ + pkgs.pdfium-binaries + pkgs.openssl + ] + ++ pkgs.lib.optionals pkgs.stdenv.isDarwin [ + pkgs.darwin.apple_sdk.frameworks.Security + pkgs.darwin.apple_sdk.frameworks.SystemConfiguration + ]; + + nativeBuildInputs = [ + pkgs.pkg-config + pkgs.makeWrapper + ]; + + postInstall = '' + wrapProgram $out/bin/pile \ + --prefix LD_LIBRARY_PATH : ${pkgs.lib.makeLibraryPath [ pkgs.pdfium-binaries ]} + ''; + + meta = { + description = "pile - flexible file indexing"; + mainProgram = "pile"; + }; +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..cb4fb84 --- /dev/null +++ b/flake.nix @@ -0,0 +1,40 @@ +{ + description = "pile - personal data indexer"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + rust-overlay = { + url = "github:oxalica/rust-overlay"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + flake-utils.url = "github:numtide/flake-utils"; + }; + + outputs = { self, nixpkgs, rust-overlay, flake-utils }: + flake-utils.lib.eachDefaultSystem (system: + let + overlays = [ (import rust-overlay) ]; + pkgs = import nixpkgs { inherit system overlays; }; + + rustToolchain = pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml; + + rustPlatform = pkgs.makeRustPlatform { + cargo = rustToolchain; + rustc = rustToolchain; + }; + + in { + packages.default = import ./default.nix { inherit pkgs rustPlatform; }; + + devShells.default = pkgs.mkShell { + buildInputs = [ + rustToolchain + pkgs.pdfium-binaries + pkgs.openssl + pkgs.pkg-config + ]; + + LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath [ pkgs.pdfium-binaries ]; + }; + }); +} diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000..b648214 --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,2 @@ +[toolchain] +channel = "1.94.0" \ No newline at end of file