diff --git a/default.nix b/default.nix index 3d1284d..a7d9fa3 100644 --- a/default.nix +++ b/default.nix @@ -1,80 +1,6 @@ -{ lib -, stdenv -, fetchFromGitHub -, makeWrapper -, curl -, jq -, python3 -, wmctrl -, xdotool -, gnome -, gobject-introspection -, wrapGAppsHook +{ + pkgs ? import { }, }: -stdenv.mkDerivation rec { - pname = "dzgui"; - version = "5.3.2"; - - src = fetchFromGitHub { - owner = "aclist"; - repo = "dztui"; - rev = "release/${version}"; - sha256 = "sha256-bTn5O/NhrP0zwmOlvSLofYzB6PifXYT1KCF2MErRFZo="; - }; - - postPatch = '' - sed -i 's@/usr/bin/zenity@zenity@g' dzgui.sh - sed -i '/ check_map_count/d' dzgui.sh - sed -i '/ check_version/d' dzgui.sh - sed -i '/ write_desktop_file >/d' dzgui.sh - ''; - - nativeBuildInputs = [ - makeWrapper - gobject-introspection - wrapGAppsHook - ]; - - runtimeDeps = [ - curl - jq - (python3.withPackages (p: with p; [ - pygobject3 - ])) - - wmctrl - xdotool - gnome.zenity - - ## Here we don't declare steam as a dependency because - ## we could either use the native or flatpack version - ## and also so this does not become a non-free package - # steam - ]; - - installPhase = '' - install -DT dzgui.sh $out/bin/dzgui - - install -DT ${./dzgui.desktop} $out/share/applications/dzgui.desktop - install -DT images/dzgui $out/share/icons/hicolor/256x256/apps/dzgui.png - ''; - - preFixup = '' - gappsWrapperArgs+=( - --prefix PATH ':' ${lib.makeBinPath runtimeDeps} - ) - ''; - - meta = with lib; { - homepage = "https://github.com/pronovic/banner"; - description = "DayZ TUI/GUI server browser"; - license = licenses.gpl3; - - longDescription = '' - DZGUI allows you to connect to both official and modded/community DayZ - servers on Linux and provides a graphical interface for doing so. - ''; - - platforms = platforms.all; - }; +{ + dzgui = pkgs.callPackage ./package { }; } diff --git a/flake.nix b/flake.nix index 4c315d0..22359e7 100644 --- a/flake.nix +++ b/flake.nix @@ -20,7 +20,7 @@ overlays = { default = (final: _: { - dzgui = (final.callPackage ./. { }); + dzgui = (final.callPackage ./package { }); }); }; diff --git a/package/default.nix b/package/default.nix new file mode 100644 index 0000000..8d38801 --- /dev/null +++ b/package/default.nix @@ -0,0 +1,80 @@ +{ lib +, stdenv +, fetchFromGitHub +, makeWrapper +, curl +, jq +, python3 +, wmctrl +, xdotool +, gnome +, gobject-introspection +, wrapGAppsHook +}: +stdenv.mkDerivation rec { + pname = "dzgui"; + version = "5.3.1"; + + src = fetchFromGitHub { + owner = "aclist"; + repo = "dztui"; + rev = "8e6cf7e7925c6e6bc390a10d286ba1e7b2562d08"; + sha256 = "sha256-+FlAYTDpjDDmCAFxgmgHVnXGcIw63e5ia38zKbYI2ZI="; + }; + + postPatch = '' + sed -i 's@/usr/bin/zenity@zenity@g' dzgui.sh + sed -i '/ check_map_count/d' dzgui.sh + sed -i '/ check_version/d' dzgui.sh + sed -i '/ write_desktop_file >/d' dzgui.sh + ''; + + nativeBuildInputs = [ + makeWrapper + gobject-introspection + wrapGAppsHook + ]; + + runtimeDeps = [ + curl + jq + (python3.withPackages (p: with p; [ + pygobject3 + ])) + + wmctrl + xdotool + gnome.zenity + + ## Here we don't declare steam as a dependency because + ## we could either use the native or flatpack version + ## and also so this does not become a non-free package + # steam + ]; + + installPhase = '' + install -DT dzgui.sh $out/bin/dzgui + + install -DT ${./dzgui.desktop} $out/share/applications/dzgui.desktop + install -DT images/dzgui $out/share/icons/hicolor/256x256/apps/dzgui.png + ''; + + preFixup = '' + gappsWrapperArgs+=( + --prefix PATH ':' ${lib.makeBinPath runtimeDeps} + ) + ''; + + meta = with lib; { + homepage = "https://github.com/pronovic/banner"; + description = "DayZ TUI/GUI server browser"; + license = licenses.gpl3; + + longDescription = '' + DZGUI allows you to connect to both official and modded/community DayZ + servers on Linux and provides a graphical interface for doing so. + ''; + + platforms = platforms.all; + }; +} diff --git a/dzgui.desktop b/package/dzgui.desktop similarity index 100% rename from dzgui.desktop rename to package/dzgui.desktop diff --git a/package/update.sh b/package/update.sh new file mode 100755 index 0000000..880a8f4 --- /dev/null +++ b/package/update.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl jq ripgrep common-updater-scripts + +set -xe + +latest_commit="$( + curl -L -s ${GITHUB_TOKEN:+-u ":${GITHUB_TOKEN}"} https://api.github.com/repos/aclist/dztui/branches/master \ + | jq -r .commit.sha +)" + +version="$( + curl https://raw.githubusercontent.com/aclist/dztui/$latest_commit/dzgui.sh \ + | rg '^version=(.*)$' --replace '$1' +)" + +update-source-version dzgui "$version" --rev=$latest_commit