63 lines
2 KiB
Nix
63 lines
2 KiB
Nix
{ lib, 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 ];
|
|
|
|
dontConfigure = true;
|
|
|
|
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" ];
|
|
};
|
|
|
|
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 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/";
|
|
sourceProvenance = with sourceTypes; [ binaryBytecode ];
|
|
license = licenses.asl20;
|
|
platforms = platforms.all;
|
|
};
|
|
}
|