arrowvortex-wine/default.nix

76 lines
2.1 KiB
Nix

{
lib,
stdenvNoCC,
fetchzip,
copyDesktopItems,
makeDesktopItem,
makeWrapper,
wineWow64Packages,
}:
let
winePkg = wineWow64Packages.stableFull;
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "arrowvortex";
version = "1.0.1";
src = fetchzip {
url = "https://github.com/uvcat7/ArrowVortex/releases/download/v${finalAttrs.version}/ArrowVortex-${finalAttrs.version}-Windows.zip";
hash = "sha256-gVhP2O4GHLii1K9Jr2GKyp+FJYP8eoL1s1qmAec6x0w=";
};
nativeBuildInputs = [
makeWrapper
copyDesktopItems
];
installPhase = ''
runHook preInstall
mkdir -p $out/share/arrowvortex
# fetchzip normalizes the zip root; files land directly under $src
cp -r $src/. $out/share/arrowvortex/
install -Dm644 "$out/share/arrowvortex/assets/arrow vortex icon.png" \
$out/share/icons/hicolor/128x128/apps/arrowvortex.png
makeWrapper ${lib.getExe winePkg} $out/bin/arrowvortex \
--set WINEDEBUG "-all" \
--set WINEARCH "win64" \
--run 'export WINEPREFIX="''${WINEPREFIX:-''${XDG_DATA_HOME:-''$HOME/.local/share}/arrowvortex/wine}"' \
--run 'mkdir -p "''$WINEPREFIX"' \
--chdir "$out/share/arrowvortex" \
--add-flags "ArrowVortex.exe"
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
name = "arrowvortex";
desktopName = "ArrowVortex";
comment = "Simfile editor for StepMania, ITG, osu!, and similar rhythm games";
exec = "arrowvortex";
icon = "arrowvortex";
categories = [
"AudioVideo"
"Utility"
];
startupWMClass = "arrowvortex.exe";
})
];
meta = {
description = "Simfile editor for StepMania, ITG, osu!, and similar rhythm games";
homepage = "https://github.com/uvcat7/ArrowVortex";
changelog = "https://github.com/uvcat7/ArrowVortex/releases";
downloadPage = "https://github.com/uvcat7/ArrowVortex/releases";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = lib.licenses.gpl3Plus;
mainProgram = "arrowvortex";
maintainers = [ ];
platforms = winePkg.meta.platforms;
};
})