diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 3ee6d98f5fe6..9bcb7ceefa8e 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -1153,6 +1153,11 @@ githubId = 858965; name = "Andrew Morsillo"; }; + amozeo = { + email = "wroclaw223@outlook.com"; + githubId = 37040543; + name = "Wroclaw"; + }; amyipdev = { email = "amy@amyip.net"; github = "amyipdev"; diff --git a/pkgs/by-name/an/antimatter-dimensions/app.js b/pkgs/by-name/an/antimatter-dimensions/app.js new file mode 100644 index 000000000000..4d15eb3a10c0 --- /dev/null +++ b/pkgs/by-name/an/antimatter-dimensions/app.js @@ -0,0 +1,14 @@ +const { app, BrowserWindow } = require('electron'); + +app.setName(process.env.ELECTRON_APP_NAME || 'Antimatter Dimensions'); + +app.whenReady().then(() => { + const mainWindow = new BrowserWindow({ + autoHideMenuBar: true, + }); + mainWindow.loadFile('index.html'); +}); + +app.on('window-all-closed', () => { + app.quit(); +}); diff --git a/pkgs/by-name/an/antimatter-dimensions/package.nix b/pkgs/by-name/an/antimatter-dimensions/package.nix new file mode 100644 index 000000000000..388faf9d41cc --- /dev/null +++ b/pkgs/by-name/an/antimatter-dimensions/package.nix @@ -0,0 +1,82 @@ +{ 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"; + version = "0-unstable-2024-05-11"; + src = fetchFromGitHub { + owner = "IvarK"; + repo = "AntimatterDimensionsSourceCode"; + rev = "b3a254af60207a03d04473bb81726e921f5b2c61"; + hash = "sha256-+G9mNilt5Ewja5P+Bt312EcCJknMu7FOMn5b4FseAyQ="; + }; + 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; + }; +}