From 4d03d658abac0fa87611d0eb9fb560f9cd9cc856 Mon Sep 17 00:00:00 2001 From: 514fpv <koishi@514fpv.one> Date: Mon, 4 Mar 2024 09:26:16 +0800 Subject: [PATCH] feat(photoview): package photoview --- package/photoview/default.nix | 63 +++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 package/photoview/default.nix diff --git a/package/photoview/default.nix b/package/photoview/default.nix new file mode 100644 index 00000000..d4d8e4a4 --- /dev/null +++ b/package/photoview/default.nix @@ -0,0 +1,63 @@ +{ lib +, pkg-config +, libjpeg_turbo +, libheif +, lapack +, dlib +, blas +, ffmpeg +, exiftool +, darktable +, fetchFromGitHub +, buildGoModule +, buildNpmPackage +, makeWrapper }: buildGoModule rec { + pname = "photoview"; + version = "2.3.13"; + + source = fetchFromGitHub { + name = "${pname}-src"; + owner = pname; + repo = pname; + rev = "refs/tags/v${version}"; + hash = "sha256-O6k5nbiWTsuOi8YLX0rsZJ9dOIo5d6pdwjhFZrdwI0E="; + }; + + src = source + "/api"; + vendorHash = "sha256-0SWywy9YdPtgvxRhwKhKvspPmhbnibSuhvzhsjIQvZk="; + nativeBuildInputs = [ + pkg-config + makeWrapper + ]; + buildInputs = [ + libjpeg_turbo + libheif + lapack + dlib + blas + ]; + + ui = buildNpmPackage { + pname = "${pname}-ui"; + inherit version; + src = source + "/ui"; + npmDepsHash = "sha256-31CyjyNd85hNg4MXIWctoQ3YgorGqCMz+wDAu/K1lWo="; + }; + + postInstall = '' + mv "$out/bin/api" "$out/bin/${pname}" + mkdir -p "$out/lib/${pname}" + wrapProgram $out/bin/${pname} \ + --prefix PATH ":" "${lib.makeBinPath [ + ffmpeg + exiftool + darktable + ]}" \ + --set PHOTOVIEW_SERVE_UI 1 \ + --set PHOTOVIEW_UI_PATH "$out/lib/${pname}/ui" + + cp -r \ + "${ui}/lib/node_modules/photoview-ui/dist" \ + "$out/lib/${pname}/ui" + ''; +}