diff options
author | detiam | 2024-02-11 16:36:17 +0800 |
---|---|---|
committer | detiam | 2024-02-11 16:36:17 +0800 |
commit | abd6629849f5984cd1cbf21d95c9df013ea98f4a (patch) | |
tree | b25f656aa9ebf78c5d201da78d538ac130cf7571 | |
parent | 8bbb5f02410d91bd612758a3dd5981ed959c11b0 (diff) | |
download | aur-abd6629849f5984cd1cbf21d95c9df013ea98f4a.tar.gz |
fix broken launch script
-rw-r--r-- | PKGBUILD | 16 | ||||
-rwxr-xr-x | hmcl-launch-script | 44 | ||||
-rw-r--r-- | hmcl.desktop | 4 |
3 files changed, 43 insertions, 21 deletions
@@ -8,25 +8,27 @@ _pkgname=HMCL _ver=3.5.5 _build=235 _pkgver=ffeabbf1f144ba14462e27c2ac9d46e231c1482e +_java_version=17 +_jar_path="/usr/share/java/$pkgname.jar" pkgver=$_ver.$_build pkgrel=1 pkgdesc='An unofficial build of HMCL that trying to compile and run HMCL with the latest LTS version of java. (with HMCL-Clean changes)' arch=('any') url='https://github.com/huanghongxun/HMCL' license=('GPL3') -depends=('java-runtime>=17' 'java-openjfx>=17' 'hicolor-icon-theme') -makedepends=('java-environment>=17' 'gradle') +depends=("java-runtime>=$_java_version" "java-openjfx>=$_java_version" 'hicolor-icon-theme' 'archlinux-java-run') +makedepends=("java-environment>=$_java_version" 'gradle') provides=('hmcl') conflicts=('hmcl') source=('hmcl.desktop' 'hmcl-launch-script' 'craft_table.png' "${_pkgname}-${_pkgver}.tar.gz::${url}/archive/${_pkgver}.tar.gz" - "0001-Target-Java-17.patch" + "0001-Target-Java-$_java_version.patch" "0002-Cleanup.patch" ) -sha256sums=('b4e8aa0f349bb3f5dd15a31c5a13ac3e10e5a5bcd2f97cf390041924275e43ef' - '4fcd4bf8f8d2ca39cf25a8d59daeb53ffa54fbca0356bd55aa17a5ee31d59a95' +sha256sums=('04ee0621a295728d4ad5d23d6bf8853d5715053153b336203ce7e73ce8b66440' + '505c335bce8685fff97f6fbd0c4b916fa697dfc73ff22735d7c188b3811bc422' '2989a1b5301b8c7b9afdae5696c6a4e5246afa2d4f1f3d3dad5c192f036a9b4c' '1e152212e1507d49c867fe8715c4ec337972795cd9f4947e285677a56257cb3d' 'c650fa0d34f22f9700dd047fbe243a63528c629312b94f499d4aa341b9b5193f' @@ -62,7 +64,9 @@ check() { package() { install -Dm755 'hmcl-launch-script' "$pkgdir/usr/bin/$pkgname" install -Dm644 'hmcl.desktop' "$pkgdir/usr/share/applications/$pkgname.desktop" - install -Dm644 "$_pkgname-$_pkgver/HMCL/build/libs/$_pkgname-$pkgver.jar" "$pkgdir/usr/share/java/$pkgname/$pkgname.jar" + install -Dm644 "$_pkgname-$_pkgver/HMCL/build/libs/$_pkgname-$pkgver.jar" "$pkgdir/$_jar_path" install -Dm644 'craft_table.png' "$pkgdir/usr/share/icons/hicolor/48x48/apps/$pkgname.png" install -Dm644 "$_pkgname-$_pkgver/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" + + sed -i -e "s|%JAVA_VERSION%|$_java_version|" -e "s|%JAR_PATH%|$_jar_path|" "$pkgdir/usr/bin/$pkgname" } diff --git a/hmcl-launch-script b/hmcl-launch-script index 66eba1ea54d6..743e7ab4ec0f 100755 --- a/hmcl-launch-script +++ b/hmcl-launch-script @@ -1,17 +1,35 @@ -#!/bin/sh +#!/usr/bin/env sh set -eu -if [ "${1:-}" != -p ]; then - WORKDIR=${XDG_CONFIG_HOME:-$HOME/.config}/hmcl - mkdir -p "$WORKDIR" - cd "$WORKDIR" -fi +print_usage() { + cat <<EOF +usage: $(basename "$0") [-h/-p] [args passed to java] -JAVA_HOME=$(pacman -Ql java-runtime | grep -e '/usr/lib/jvm/.*/bin/java$' | head -n 1 | cut -s -d ' ' -f '2-' | cut -s -d / -f '-5') -JAVAFX_HOME=$(dirname "$(pacman -Ql java-openjfx | grep -e '/javafx\..*\.jar$' | head -n 1 | cut -s -d ' ' -f '2-')") +Options: + -h --help: + Print this message + --hmcl-global: + Use "\${XDG_DATA_HOME:-\$HOME/.local/share}/hmcl" as working directory +EOF + exit 0 +} -exec "${JAVA_HOME}"/bin/java \ - --module-path "${JAVAFX_HOME}/javafx.base.jar:${JAVAFX_HOME}/javafx.fxml.jar:${JAVAFX_HOME}/javafx.graphics.jar:${JAVAFX_HOME}/javafx.media.jar:${JAVAFX_HOME}/javafx.swing.jar:${JAVAFX_HOME}/javafx.web.jar:${JAVAFX_HOME}/javafx.controls.jar" \ - --add-modules=javafx.base --add-modules=javafx.fxml --add-modules=javafx.graphics --add-modules=javafx.media --add-modules=javafx.swing --add-modules=javafx.web --add-modules=javafx.controls \ - -jar /usr/share/java/hmcl-new/hmcl-new.jar \ - "$@" +args='' +for arg in "$@" ; do + case "$arg" in + -h|--help) + print_usage + ;; + --hmcl-global) + printf 'Global mode\n\n' + WORKDIR=${XDG_DATA_HOME:-$HOME/.local/share}/hmcl + mkdir -p "$WORKDIR" + cd "$WORKDIR" || exit 2 + ;; + *) + args="$args $arg" + ;; + esac +done + +env GDK_CORE_DEVICE_EVENTS=1 archlinux-java-run -f 'javafx' -a '%JAVA_VERSION%' -- -jar '%JAR_PATH%' "$args" diff --git a/hmcl.desktop b/hmcl.desktop index aa2079c867bc..85a9b848cecd 100644 --- a/hmcl.desktop +++ b/hmcl.desktop @@ -3,9 +3,9 @@ Version=1.0 Type=Application Name=HMCL Comment=Hello Minecraft! Launcher, a powerful Minecraft launcher. -Exec=hmcl-new +Exec=hmcl-new --hmcl-global %U Icon=hmcl-new Terminal=false -StartupNotify=false +StartupNotify=true Categories=Game; StartupWMClass=org.jackhuang.hmcl.Launcher |