about summary refs log tree commit diff
path: root/pkgs/by-name/ja/jailer/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/ja/jailer/package.nix')
-rw-r--r--pkgs/by-name/ja/jailer/package.nix83
1 files changed, 83 insertions, 0 deletions
diff --git a/pkgs/by-name/ja/jailer/package.nix b/pkgs/by-name/ja/jailer/package.nix
new file mode 100644
index 0000000000000..b47c51a78d170
--- /dev/null
+++ b/pkgs/by-name/ja/jailer/package.nix
@@ -0,0 +1,83 @@
+{
+  lib,
+  ant,
+  copyDesktopItems,
+  fetchFromGitHub,
+  jdk,
+  jre,
+  makeDesktopItem,
+  makeWrapper,
+  stdenv,
+  stripJavaArchivesHook,
+  wrapGAppsHook4,
+}:
+stdenv.mkDerivation (finalAttrs: {
+  name = "jailer";
+  version = "16.2";
+
+  src = fetchFromGitHub {
+    owner = "Wisser";
+    repo = "Jailer";
+    rev = "bc00c6883bac0d09b549e35a10e202da477e4cb1";
+    sha256 = "sha256-nXxTKbhvrBlorNqiF3wZDEgf1VrBamWw8ZSQSUqpGT8=";
+  };
+
+
+  buildPhase = ''
+    runHook preBuild
+    rm jailer.jar
+    ant
+    runHook postBuild
+  '';
+
+  nativeBuildInputs = [ ant jdk stripJavaArchivesHook makeWrapper wrapGAppsHook4 copyDesktopItems ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 jailer.jar $out/share/java/jailer.jar
+    install -Dm644 jailer-engine-${finalAttrs.version}.jar $out/share/java/
+    mkdir -p $out/share/java/lib
+    for f in lib/*.jar; do
+      install -Dm644 $f $out/share/java/lib
+    done
+
+    mkdir -p $out/bin
+    mkdir -p $out/share
+    mkdir -p $out/share/pixmaps
+    cp driverlist.csv $out/share
+    cp admin/jailer.png $out/share/pixmaps
+
+    # On first run, create a local configuration folder and copy driverlist.csv there.
+    cat << EOF > $out/bin/jailer
+    #!/usr/bin/env bash
+    CFG="''${XDG_CONFIG_HOME:-\$HOME/.config}/jailer"
+    mkdir -p \$CFG
+    cp -n $out/share/driverlist.csv \$CFG
+    cd \$CFG
+    _JAVA_AWT_WM_NONREPARENTING=1 ${jre}/bin/java -jar $out/share/java/jailer.jar
+    EOF
+    chmod +x $out/bin/jailer
+
+    runHook postInstall
+  '';
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "Jailer";
+      desktopName = "Jailer";
+      exec = "jailer";
+      icon = "jailer";
+      categories = [ "Development" ];
+    })
+  ];
+
+  meta = {
+    description = "A tool for database subsetting and relational data browsing";
+    license = lib.licenses.asl20;
+    homepage = "https://github.com/Wisser/Jailer";
+    changelog = "https://github.com/Wisser/Jailer/releases/tag/${finalAttrs.version}";
+    maintainers = with lib.maintainers; [ guillaumematheron ];
+    mainProgram = "jailer";
+  };
+})