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