2024-07-01 15:47:52 +00:00
|
|
|
{ buildNpmPackage
|
|
|
|
, copyDesktopItems
|
|
|
|
, electron
|
|
|
|
, fetchFromGitHub
|
|
|
|
, lib
|
|
|
|
, makeDesktopItem
|
|
|
|
, unstableGitUpdater
|
|
|
|
, writeScriptBin
|
|
|
|
, electronAppName ? "Antimatter Dimensions"
|
|
|
|
}:
|
|
|
|
|
|
|
|
let
|
|
|
|
# build doesn't provide app.js, only index.html as entry point.
|
|
|
|
# app.js is used to change the directory where data is stored
|
|
|
|
# instead of default Electron. This workaround will be removed
|
|
|
|
# when this file will be available in upstream repository.
|
|
|
|
dummyElectronApp = ./app.js;
|
|
|
|
in
|
|
|
|
buildNpmPackage rec {
|
|
|
|
pname = "antimatter-dimensions";
|
2024-09-19 14:19:46 +00:00
|
|
|
version = "0-unstable-2024-08-12";
|
2024-07-01 15:47:52 +00:00
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "IvarK";
|
|
|
|
repo = "AntimatterDimensionsSourceCode";
|
2024-09-19 14:19:46 +00:00
|
|
|
rev = "af840eef45bb2120bff4dcebb9b11c181067f9a8";
|
|
|
|
hash = "sha256-qlgu/Sw3LMn/ZSXJFi0DW6vYAZyF2D3cCpKmXhID3s4=";
|
2024-07-01 15:47:52 +00:00
|
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
|
|
copyDesktopItems
|
|
|
|
# build script calls git to get git hash, message and author
|
|
|
|
# since fetchFromGitHub doesn't provide this information
|
|
|
|
# and in order to keep determinism (#8567), create a dummy git
|
|
|
|
(writeScriptBin "git" ''
|
|
|
|
echo "unknown"
|
|
|
|
'')
|
|
|
|
];
|
|
|
|
|
|
|
|
npmDepsHash = "sha256-aG+oysgitQvdFM0QyzJ3DBxsanBHYI+UPJPhj6bf00Q=";
|
|
|
|
npmFlags = [ "--legacy-peer-deps" ];
|
|
|
|
npmBuildScript = "build:release";
|
|
|
|
|
|
|
|
installPhase = ''
|
|
|
|
runHook preInstall
|
|
|
|
|
|
|
|
mkdir -p $out/share/antimatter-dimensions
|
|
|
|
cp -Tr dist $out/share/antimatter-dimensions
|
|
|
|
mkdir -p $out/share/icons/hicolor/256x256/apps
|
|
|
|
ln -rs $out/share/antimatter-dimensions/icon.png $out/share/icons/hicolor/256x256/apps/antimatter-dimensions.png
|
|
|
|
cp ${dummyElectronApp} $out/share/antimatter-dimensions/app.js
|
|
|
|
|
|
|
|
makeWrapper ${lib.getExe electron} $out/bin/antimatter-dimensions \
|
|
|
|
--add-flags $out/share/antimatter-dimensions/app.js \
|
|
|
|
--set ELECTRON_APP_NAME "${electronAppName}"
|
|
|
|
|
|
|
|
runHook postInstall
|
|
|
|
'';
|
|
|
|
|
|
|
|
desktopItems = [
|
|
|
|
(makeDesktopItem {
|
|
|
|
name = "antimatter-dimensions";
|
|
|
|
exec = "antimatter-dimensions";
|
|
|
|
icon = "antimatter-dimensions";
|
|
|
|
desktopName = electronAppName;
|
|
|
|
comment = meta.description;
|
|
|
|
categories = [ "Game" ];
|
|
|
|
terminal = false;
|
|
|
|
})
|
|
|
|
];
|
|
|
|
|
|
|
|
passthru.updateScript = unstableGitUpdater {
|
|
|
|
hardcodeZeroVersion = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
meta = {
|
|
|
|
homepage = "https://github.com/IvarK/AntimatterDimensionsSourceCode";
|
|
|
|
description = "Idle incremental game with multiple prestige layers.";
|
|
|
|
license = lib.licenses.mit;
|
|
|
|
mainProgram = "antimatter-dimensions";
|
|
|
|
maintainers = with lib.maintainers; [ amozeo ];
|
|
|
|
inherit (electron.meta) platforms;
|
|
|
|
};
|
|
|
|
}
|