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