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