diff options
Diffstat (limited to 'nixpkgs/pkgs/games/osu-lazer/bin.nix')
-rw-r--r-- | nixpkgs/pkgs/games/osu-lazer/bin.nix | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/games/osu-lazer/bin.nix b/nixpkgs/pkgs/games/osu-lazer/bin.nix new file mode 100644 index 000000000000..81129ba1d695 --- /dev/null +++ b/nixpkgs/pkgs/games/osu-lazer/bin.nix @@ -0,0 +1,83 @@ +{ lib +, stdenv +, fetchurl +, fetchzip +, appimageTools +}: + +let + pname = "osu-lazer-bin"; + version = "2023.511.0"; + name = "${pname}-${version}"; + + osu-lazer-bin-src = { + aarch64-darwin = { + url = "https://github.com/ppy/osu/releases/download/${version}/osu.app.Apple.Silicon.zip"; + sha256 = "sha256-oy+MDLwi1hEb4NSYxdDE1rxBLHfio9t+n+/GE6FcLYc="; + }; + x86_64-darwin = { + url = "https://github.com/ppy/osu/releases/download/${version}/osu.app.Intel.zip"; + sha256 = "sha256-i4y2ySo0XEEZSBYQI17G8SdGXyunT2g1XECrlud7hIc="; + }; + x86_64-linux = { + url = "https://github.com/ppy/osu/releases/download/${version}/osu.AppImage"; + sha256 = "sha256-GUT0wlBUMJR/M2Ovwda0uMeDG1O8cqmrRoDlV2bGybU="; + }; + }.${stdenv.system} or (throw "${pname}-${version}: ${stdenv.system} is unsupported."); + + linux = appimageTools.wrapType2 rec { + inherit name pname version meta; + + src = fetchurl (osu-lazer-bin-src); + + extraPkgs = pkgs: with pkgs; [ icu ]; + + extraInstallCommands = + let contents = appimageTools.extract { inherit pname version src; }; + in + '' + mv -v $out/bin/${pname}-${version} $out/bin/osu\! + install -m 444 -D ${contents}/osu\!.desktop -t $out/share/applications + for i in 16 32 48 64 96 128 256 512 1024; do + install -D ${contents}/osu\!.png $out/share/icons/hicolor/''${i}x$i/apps/osu\!.png + done + ''; + }; + + darwin = stdenv.mkDerivation rec { + inherit name pname version meta; + + src = fetchzip (osu-lazer-bin-src // { stripRoot = false; }); + + dontBuild = true; + dontFixup = true; + + installPhase = '' + runHook preInstall + APP_DIR="$out/Applications" + mkdir -p "$APP_DIR" + cp -r . "$APP_DIR" + runHook postInstall + ''; + }; + + meta = with lib; { + description = "Rhythm is just a *click* away (AppImage version for score submission and multiplayer, and binary distribution for Darwin systems)"; + homepage = "https://osu.ppy.sh"; + license = with licenses; [ + mit + cc-by-nc-40 + unfreeRedistributable # osu-framework contains libbass.so in repository + ]; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + maintainers = with maintainers; [ delan stepbrobd ]; + mainProgram = "osu!"; + platforms = [ "aarch64-darwin" "x86_64-darwin" "x86_64-linux" ]; + }; + + passthru.updateScript = ./update-bin.sh; +in +if stdenv.isDarwin +then darwin +else linux + |