configuration/packages/mcaselector.nix
2022-12-15 09:47:27 -08:00

60 lines
1.6 KiB
Nix

{ fetchurl
, fetchFromGitHub
, graphicsmagick
, lib
, makeDesktopItem
, makeWrapper
, stdenv
# Dependencies
, jre
}:
stdenv.mkDerivation rec {
pname = "mcaselector";
version = "2.1";
src = fetchurl {
url = "https://github.com/Querz/mcaselector/releases/download/${version}/mcaselector-${version}.jar";
hash = "sha256-6byZ3kH+iLAv2NZ2MzMvwlJ/RFNk4jl4RnT2S0Ctu90=";
};
dontUnpack = true;
iconSrc = fetchFromGitHub {
owner = "Querz";
repo = "mcaselector";
rev = "ccb5d2570350f97f4c3c58753aefbd2a89b4e2c1";
sparseCheckout = [ "src/main/resources/img/icon.png" ];
hash = "sha256-MUx+xB7irlkbLqbXvovZ2xG63Wp33ARWQFszB3eBOwM=";
};
desktopItem = makeDesktopItem {
categories = [ "Utility" ];
genericName = "Minecraft chunk editor";
desktopName = "MCA Selector";
name = pname;
icon = pname;
exec = meta.mainProgram;
};
nativeBuildInputs = [ graphicsmagick makeWrapper ];
buildPhase = ''
gm convert $iconSrc/src/main/resources/img/icon.png \
-filter 'point' -resize '1600%' ${pname}.png
'';
installPhase = ''
install -D $src $out/share/${pname}.jar
makeWrapper ${jre}/bin/java $out/bin/${pname} \
--add-flags "-jar $out/share/${pname}.jar"
install -D -t $out/share/icons ${pname}.png
install -D -t $out/share/applications ${desktopItem}/share/applications/*
'';
meta = {
description = "A tool to select chunks from Minecraft worlds for deletion or export.";
homepage = "https://github.com/Querz/mcaselector";
license = lib.licenses.mit;
mainProgram = pname;
};
}