Unverified Commit e5dcb41b authored by Moraxyc's avatar Moraxyc
Browse files

hmcl: add updateScript

parent c147291a
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@
  vulkan-loader,
  libpulseaudio,
  gobject-introspection,
  callPackage,
}:

stdenv.mkDerivation (finalAttrs: {
@@ -113,6 +114,8 @@ stdenv.mkDerivation (finalAttrs: {
      runHook postFixup
    '';

  passthru.updateScript = lib.getExe (callPackage ./update.nix { });

  meta = {
    homepage = "https://hmcl.huangyuhui.net";
    description = "Minecraft Launcher which is multi-functional, cross-platform and popular";
+40 −0
Original line number Diff line number Diff line
{
  writeShellApplication,
  nix,
  nix-update,
  curl,
  common-updater-scripts,
  jq,
}:

writeShellApplication {
  name = "update-hmcl";
  runtimeInputs = [
    curl
    jq
    nix
    common-updater-scripts
    nix-update
  ];

  text = ''
    # get old info
    oldVersion=$(nix-instantiate --eval --strict -A "hmcl.version" | jq -e -r)

    get_latest_release() {
        curl --fail ''${GITHUB_TOKEN:+ -H "Authorization: bearer $GITHUB_TOKEN"} \
             -s "https://api.github.com/repos/HMCL-dev/HMCL/releases/latest" | jq -r ".tag_name"
    }

    version=$(get_latest_release)
    version="''${version#release-}"

    if [[ "$oldVersion" == "$version" ]]; then
        echo "Already up to date!"
        exit 0
    fi

    nix-update hmcl --version="$version"
    update-source-version hmcl --source-key=icon --ignore-same-version
  '';
}