about summary refs log tree commit diff
path: root/pkgs/by-name/sh
diff options
context:
space:
mode:
authorlucasew <lucas59356@gmail.com>2024-01-01 21:16:58 -0300
committerlucasew <lucas59356@gmail.com>2024-01-10 13:33:40 -0300
commitc1afdf8afcb2ad9f4982f0f1e2e72043058b4564 (patch)
tree27e3b1ff565238120d68b7728d9ee3c5866adb7e /pkgs/by-name/sh
parentaeca39024902034d198ac955cab5196b3729511c (diff)
shadershark: init at 0.1
Signed-off-by: lucasew <lucas59356@gmail.com>
Diffstat (limited to 'pkgs/by-name/sh')
-rw-r--r--pkgs/by-name/sh/shadershark/package.nix63
-rwxr-xr-xpkgs/by-name/sh/shadershark/update.sh14
2 files changed, 77 insertions, 0 deletions
diff --git a/pkgs/by-name/sh/shadershark/package.nix b/pkgs/by-name/sh/shadershark/package.nix
new file mode 100644
index 0000000000000..e27036575be76
--- /dev/null
+++ b/pkgs/by-name/sh/shadershark/package.nix
@@ -0,0 +1,63 @@
+{ stdenv
+, lib
+, fetchhg
+, libepoxy
+, xorg
+, libGLU
+, glm
+, pkg-config
+, imagemagick
+, makeWrapper
+, installShellFiles
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "shadershark";
+  version = "0.1";
+
+  src = fetchhg {
+    url = "https://hg.globalcode.info/graphics/shader-shark";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-AYZWfqMckPKgXNIX9kAAv1mvD3opLi5EUElFsigiF3c=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    makeWrapper
+    installShellFiles
+  ];
+
+  buildInputs = [
+    libepoxy
+    xorg.libX11
+    libGLU
+    glm
+    imagemagick
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/{bin,share/shadershark}
+
+    install -m755 -D build/shader-shark $out/bin
+    cp -r shaders textures $out/share/shadershark
+
+    wrapProgram $out/bin/shader-shark \
+      --set SHADER_SHARK_DATA_DIR $out/share/shadershark
+
+    installShellCompletion --bash --name shader-shark.bash bash-completion.sh
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = [ ./update.sh finalAttrs.src.url ];
+
+  meta = with lib; {
+    mainProgram = "shader-shark";
+    description = "OpenGL/X11 application for GNU/Linux consisting of a single window that shows simple 3D scene of a textured rectangle with applied vertex and fragment shaders (GLSL)";
+    homepage = "https://graphics.globalcode.info/v_0/shader-shark.xhtml";
+    license = licenses.gpl3;
+    maintainers = [ maintainers.lucasew ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/sh/shadershark/update.sh b/pkgs/by-name/sh/shadershark/update.sh
new file mode 100755
index 0000000000000..0bd125caac951
--- /dev/null
+++ b/pkgs/by-name/sh/shadershark/update.sh
@@ -0,0 +1,14 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p curl common-updater-scripts
+
+set -e
+
+repo_url="$1"; shift
+
+data="$(curl "$repo_url/tags")"
+
+rev="$(echo "$data" | grep '/rev/v' | sed 's;.*/rev/v\([^"]*\)[^$]*;\1;' | head -n 1)"
+echo "new rev: $rev"
+
+update-source-version shadershark "$rev" \
+  --print-changes