blob: 9da7c29efe1d5b148205d0b859f17c6757c37b9d (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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 = "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";
};
})
|