1# To enable specific database drivers, override this derivation and pass the
2# driver packages in the drivers argument (e.g. mysql_jdbc, postgresql_jdbc).
3{
4 lib,
5 stdenv,
6 fetchurl,
7 makeDesktopItem,
8 makeWrapper,
9 unzip,
10 jre,
11 drivers ? [ ],
12}:
13stdenv.mkDerivation rec {
14 pname = "squirrel-sql";
15 version = "5.0.0";
16
17 src = fetchurl {
18 url = "mirror://sourceforge/project/squirrel-sql/1-stable/${version}-plainzip/squirrelsql-${version}-standard.zip";
19 sha256 = "sha256-HZYlW+HthutFP3xNUU2Wrd/Yet8oBF190gg52Wauqng=";
20 };
21
22 nativeBuildInputs = [
23 makeWrapper
24 unzip
25 ];
26 buildInputs = [ jre ];
27
28 unpackPhase = ''
29 runHook preUnpack
30 unzip ${src}
31 runHook postUnpack
32 '';
33
34 buildPhase = ''
35 runHook preBuild
36 cd squirrelsql-${version}-standard
37 chmod +x squirrel-sql.sh
38 runHook postBuild
39 '';
40
41 installPhase = ''
42 runHook preInstall
43
44 mkdir -p $out/share/squirrel-sql
45 cp -r . $out/share/squirrel-sql
46
47 mkdir -p $out/bin
48 cp=""
49 for pkg in ${builtins.concatStringsSep " " drivers}; do
50 if test -n "$cp"; then
51 cp="$cp:"
52 fi
53 cp="$cp"$(echo $pkg/share/java/*.jar | tr ' ' :)
54 done
55 makeWrapper $out/share/squirrel-sql/squirrel-sql.sh $out/bin/squirrel-sql \
56 --set CLASSPATH "$cp" \
57 --set JAVA_HOME "${jre}"
58 # Make sure above `CLASSPATH` gets picked up
59 substituteInPlace $out/share/squirrel-sql/squirrel-sql.sh --replace "-cp \"\$CP\"" "-cp \"\$CLASSPATH:\$CP\""
60
61 mkdir -p $out/share/icons/hicolor/32x32/apps
62 ln -s $out/share/squirrel-sql/icons/acorn.png \
63 $out/share/icons/hicolor/32x32/apps/squirrel-sql.png
64 ln -s ${desktopItem}/share/applications $out/share
65
66 runHook postInstall
67 '';
68
69 desktopItem = makeDesktopItem {
70 name = "squirrel-sql";
71 exec = "squirrel-sql";
72 comment = meta.description;
73 desktopName = "SQuirreL SQL";
74 genericName = "SQL Client";
75 categories = [ "Development" ];
76 icon = "squirrel-sql";
77 };
78
79 meta = with lib; {
80 description = "Universal SQL Client";
81 mainProgram = "squirrel-sql";
82 homepage = "http://squirrel-sql.sourceforge.net/";
83 sourceProvenance = with sourceTypes; [ binaryBytecode ];
84 license = licenses.lgpl21Plus;
85 platforms = platforms.linux;
86 };
87}