aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/applications/graphics/swingsane/default.nix
blob: fc9132ec0b4011d1d8dba457e6162ea584633d67 (plain)
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
{ stdenv, fetchurl, makeDesktopItem, unzip, jre, runtimeShell }:

stdenv.mkDerivation rec {
  pname = "swingsane";
  version = "0.2";

  src = fetchurl {
    sha256 = "15pgqgyw46yd2i367ax9940pfyvinyw2m8apmwhrn0ix5nywa7ni";
    url = "mirror://sourceforge/swingsane/swingsane-${version}-bin.zip";
  };

  nativeBuildInputs = [ unzip ];

  phases = [ "unpackPhase" "installPhase" ];

  installPhase = let

    execWrapper = ''
      #!${runtimeShell}
      exec ${jre}/bin/java -jar $out/share/java/swingsane/swingsane-${version}.jar "$@"
    '';

    desktopItem = makeDesktopItem {
      name = "swingsane";
      exec = "swingsane";
      icon = "swingsane";
      desktopName = "SwingSane";
      genericName = "Scan from local or remote SANE servers";
      comment = meta.description;
      categories = "Office;Application;";
    };

  in ''
    install -v -m 755    -d $out/share/java/swingsane/
    install -v -m 644 *.jar $out/share/java/swingsane/

    echo "${execWrapper}" > swingsane
    install -v -D -m 755 swingsane $out/bin/swingsane

    unzip -j swingsane-${version}.jar "com/swingsane/images/*.png"
    install -v -D -m 644 swingsane_512x512.png $out/share/pixmaps/swingsane.png

    cp -v -r ${desktopItem}/share/applications $out/share
  '';

  meta = with stdenv.lib; {
    description = "Java GUI for SANE scanner servers (saned)";
    longDescription = ''
      SwingSane is a powerful, cross platform, open source Java front-end for
      using both local and remote Scanner Access Now Easy (SANE) servers.
      The most powerful feature is its ability to query back-ends for scanner
      specific options which can be set by the user as a scanner profile.
      It also has support for authentication, mutlicast DNS discovery,
      simultaneous scan jobs, image transformation jobs (deskew, binarize,
      crop, etc), PDF and PNG output.
    '';
    homepage = "http://swingsane.com/";
    license = licenses.asl20;
    platforms = platforms.all;
  };
}