configuration/packages/mcaselector.nix

61 lines
1.6 KiB
Nix
Raw Normal View History

2021-12-27 06:16:48 +00:00
{ fetchurl
2022-12-15 17:47:27 +00:00
, fetchFromGitHub
, graphicsmagick
2021-12-27 06:16:48 +00:00
, lib
2022-12-15 17:47:27 +00:00
, makeDesktopItem
2021-12-27 06:16:48 +00:00
, makeWrapper
, stdenv
# Dependencies
, jre
}:
stdenv.mkDerivation rec {
pname = "mcaselector";
2022-12-15 01:26:39 +00:00
version = "2.1";
2021-12-27 06:16:48 +00:00
src = fetchurl {
url = "https://github.com/Querz/mcaselector/releases/download/${version}/mcaselector-${version}.jar";
2022-12-15 01:26:39 +00:00
hash = "sha256-6byZ3kH+iLAv2NZ2MzMvwlJ/RFNk4jl4RnT2S0Ctu90=";
2021-12-27 06:16:48 +00:00
};
dontUnpack = true;
2022-12-15 17:47:27 +00:00
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
'';
2021-12-27 06:16:48 +00:00
installPhase = ''
2022-12-15 14:42:03 +00:00
install -D $src $out/share/${pname}.jar
makeWrapper ${jre}/bin/java $out/bin/${pname} \
--add-flags "-jar $out/share/${pname}.jar"
2022-12-15 17:47:27 +00:00
install -D -t $out/share/icons ${pname}.png
install -D -t $out/share/applications ${desktopItem}/share/applications/*
2021-12-27 06:16:48 +00:00
'';
meta = {
description = "A tool to select chunks from Minecraft worlds for deletion or export.";
homepage = "https://github.com/Querz/mcaselector";
license = lib.licenses.mit;
2022-12-15 14:42:03 +00:00
mainProgram = pname;
2021-12-27 06:16:48 +00:00
};
}