nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenvNoCC,
4 fetchFromGitHub,
5 jdk,
6 jre,
7 zip,
8 makeWrapper,
9 desktop-file-utils,
10 spleen,
11 nix-update-script,
12}:
13
14stdenvNoCC.mkDerivation (finalAttrs: {
15 pname = "bitsnpicas";
16 version = "2.1.1";
17
18 src = fetchFromGitHub {
19 owner = "kreativekorp";
20 repo = "bitsnpicas";
21 tag = "v${finalAttrs.version}";
22 hash = "sha256-eE1wxtZrv5G+8luMj6E1vpM+49mGnaMyEfzmbpVUdZE=";
23 };
24
25 nativeBuildInputs = [
26 jdk
27 zip
28 makeWrapper
29 ]
30 ++ lib.optionals stdenvNoCC.hostPlatform.isLinux [
31 desktop-file-utils
32 ];
33
34 sourceRoot = "${finalAttrs.src.name}/main/java/BitsNPicas";
35
36 installPhase = ''
37 runHook preInstall
38
39 install -Dm444 BitsNPicas.jar "$out/share/java/bitsnpicas.jar"
40 install -Dm444 MapEdit.jar "$out/share/java/mapedit.jar"
41 install -Dm444 KeyEdit.jar "$out/share/java/keyedit.jar"
42
43 makeWrapper "${jre}/bin/java" "$out/bin/bitsnpicas" \
44 --add-flags "-jar $out/share/java/bitsnpicas.jar"
45 makeWrapper "${jre}/bin/java" "$out/bin/mapedit" \
46 --add-flags "-jar $out/share/java/mapedit.jar"
47 makeWrapper "${jre}/bin/java" "$out/bin/keyedit" \
48 --add-flags "-jar $out/share/java/keyedit.jar"
49
50 install -Dm444 dep/bitsnpicas.png "$out/share/icons/hicolor/128x128/apps/bitsnpicas.png"
51 install -Dm444 dep/kbnp-icon.png "$out/share/icons/hicolor/512x512/apps/bitsnpicas.png"
52 install -Dm444 dep/mapedit-icon.png "$out/share/icons/hicolor/512x512/apps/mapedit.png"
53 install -Dm444 dep/keyedit-icon.png "$out/share/icons/hicolor/256x256/apps/keyedit.png"
54 ''
55 + lib.optionalString stdenvNoCC.hostPlatform.isLinux ''
56 mkdir -p "$out/share/applications/"
57 cp dep/*.desktop "$out/share/applications/"
58 ''
59 + ''
60 runHook postInstall
61 '';
62
63 postFixup = lib.optionalString stdenvNoCC.hostPlatform.isLinux ''
64 desktop-file-edit "$out/share/applications/bitsnpicas.desktop" \
65 --set-key='Exec' --set-value='bitsnpicas edit %F' \
66 --set-key='Icon' --set-value='bitsnpicas' \
67 --set-key='StartupWMClass' --set-value='com-kreative-bitsnpicas-main-Main'
68 desktop-file-edit "$out/share/applications/mapedit.desktop" \
69 --set-key='Exec' --set-value='mapedit %F' \
70 --set-key='Icon' --set-value='mapedit' \
71 --set-key='StartupWMClass' --set-value='com-kreative-mapedit-Main'
72 desktop-file-edit "$out/share/applications/keyedit.desktop" \
73 --set-key='Exec' --set-value='keyedit %F' \
74 --set-key='Icon' --set-value='keyedit' \
75 --set-key='StartupWMClass' --set-value='com-kreative-keyedit-Main'
76 '';
77
78 doInstallCheck = true;
79 installCheckPhase = ''
80 runHook preInstallCheck
81
82 "$out/bin/bitsnpicas" convertbitmap -f psf "${spleen}/share/fonts/misc/spleen-8x16.bdf"
83 [[ -f Spleen.psf ]]
84
85 runHook postInstallCheck
86 '';
87
88 passthru = {
89 updateScript = nix-update-script { };
90 };
91
92 meta = {
93 description = "Bitmap and emoji font creation and conversion tools";
94 homepage = "https://github.com/kreativekorp/bitsnpicas";
95 # Written in https://github.com/kreativekorp/bitsnpicas/blob/v2.1/main/java/BitsNPicas/LICENSE
96 license = lib.licenses.mpl11;
97 mainProgram = "bitsnpicas";
98 maintainers = with lib.maintainers; [
99 kachick
100 ];
101 platforms = lib.lists.unique (jdk.meta.platforms ++ lib.platforms.windows);
102 };
103})