diff options
author | 企鹅2035 | 2022-08-20 08:53:59 +0800 |
---|---|---|
committer | 企鹅2035 | 2022-08-20 08:53:59 +0800 |
commit | 9d554a6465af191621eed2f75fea192608c5c68d (patch) | |
tree | e6d30b69ce7a8423d3d57cdfdac25030844eff43 | |
parent | fb3a52f4c9c294ef33a66e2104fd3c8e91a4db72 (diff) | |
download | aur-9d554a6465af191621eed2f75fea192608c5c68d.tar.gz |
feat (all): change to unpack the appimage
-rw-r--r-- | .SRCINFO | 14 | ||||
-rw-r--r-- | .gitignore | 4 | ||||
-rw-r--r-- | PKGBUILD | 53 | ||||
-rw-r--r-- | mfosu | 98 | ||||
-rw-r--r-- | mfosu.desktop | 5 |
5 files changed, 133 insertions, 41 deletions
@@ -1,11 +1,11 @@ pkgbase = mfosu-bin - pkgdesc = An fork of osu!lazer. + pkgdesc = A fork of osu!lazer. pkgver = 2022.528.0 - pkgrel = 2 + pkgrel = 3 url = https://github.com/MATRIX-feather/osu arch = x86_64 license = MIT - license = CC-BY-NC 4.0 + license = custom:CC-BY-NC 4.0 depends = zlib depends = libgl depends = fuse2 @@ -13,17 +13,13 @@ pkgbase = mfosu-bin provides = osu-lazer provides = mf-osu provides = mfosu - noextract = mfosu.appimage - options = !strip source = https://dl.hiosu.com/本地下载点① - 电信网络推荐/Linux版(2022.528.0)/mfosu.appimage - source = https://github.com/MATRIX-feather/osu/raw/stable/assets/lazer.png source = https://raw.githubusercontent.com/ppy/osu-resources/master/LICENCE.md source = mfosu.desktop source = mfosu sha256sums = fe8f26b11443a0f0e6dc9e6c10d32d9c3c5cc3f2e825e970f4ebfe4f7994ae37 - sha256sums = 36f73cfe0a84cd65a8bb54fcde5a01c419b134bee4a88cc92eb4f33236343a10 sha256sums = 30b914824784b6ba6b30a44b22bea4f3c6fbc10f3f0e74fde5ca76a92ef57244 - sha256sums = a072250ea8407385937d9a25e077ba71ec581da67598922fe4893f097dfe3280 - sha256sums = 2bf4c70aebc2375b8fd607981ff1999b60659d13aab80df42b735085d0fd0cec + sha256sums = 97eb363bff09b570ecb9c3ff1fc9a72bcc70b21622b164ef730030f83372ed54 + sha256sums = e76cd67550f59ba90679a23c926875c6d3eb62dcfe886121b879f1eb8fb4412f pkgname = mfosu-bin diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..8e40af755588 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +lazer.png +LICENCE.md +mfosu-*.zst +mfosu.appimage
\ No newline at end of file @@ -1,12 +1,13 @@ -pkgname=mfosu-bin +_pkg=mfosu +pkgname=$_pkg-bin pkgver=2022.528.0 -pkgrel=2 -pkgdesc="An fork of osu!lazer." +pkgrel=3 +pkgdesc="A fork of osu!lazer." arch=(x86_64) url="https://github.com/MATRIX-feather/osu" license=( "MIT" - "CC-BY-NC 4.0" + "custom:CC-BY-NC 4.0" ) depends=( zlib @@ -17,31 +18,35 @@ depends=( provides=( osu-lazer mf-osu - mfosu + $_pkg ) -options=(!strip) source=( - "https://dl.hiosu.com/本地下载点① - 电信网络推荐/Linux版($pkgver)/mfosu.appimage" - "https://github.com/MATRIX-feather/osu/raw/stable/assets/lazer.png" + "https://dl.hiosu.com/本地下载点① - 电信网络推荐/Linux版($pkgver)/$_pkg.appimage" "https://raw.githubusercontent.com/ppy/osu-resources/master/LICENCE.md" - "mfosu.desktop" - "mfosu" + "$_pkg.desktop" + "$_pkg" ) -noextract=("mfosu.appimage") sha256sums=( - "fe8f26b11443a0f0e6dc9e6c10d32d9c3c5cc3f2e825e970f4ebfe4f7994ae37" - "36f73cfe0a84cd65a8bb54fcde5a01c419b134bee4a88cc92eb4f33236343a10" - "30b914824784b6ba6b30a44b22bea4f3c6fbc10f3f0e74fde5ca76a92ef57244" - "a072250ea8407385937d9a25e077ba71ec581da67598922fe4893f097dfe3280" - "2bf4c70aebc2375b8fd607981ff1999b60659d13aab80df42b735085d0fd0cec" + 'fe8f26b11443a0f0e6dc9e6c10d32d9c3c5cc3f2e825e970f4ebfe4f7994ae37' + '30b914824784b6ba6b30a44b22bea4f3c6fbc10f3f0e74fde5ca76a92ef57244' + '97eb363bff09b570ecb9c3ff1fc9a72bcc70b21622b164ef730030f83372ed54' + 'e76cd67550f59ba90679a23c926875c6d3eb62dcfe886121b879f1eb8fb4412f' ) +prepare() { + chmod +x $_pkg.appimage + ./$_pkg.appimage --appimage-extract >/dev/null +} package() { - cd "$srcdir" - # Install binary and launch script - install -Dm755 "mfosu.appimage" "$pkgdir/opt/mfosu/mfosu.appimage" - install -Dm755 -t "$pkgdir/usr/bin" mfosu - # Install pixmap, desktop and license file - install -Dm644 lazer.png "$pkgdir/usr/share/pixmaps/mfosu.png" - install -Dm644 -t "$pkgdir/usr/share/applications" mfosu.desktop - install -Dm644 -t "$pkgdir/usr/share/licenses/mfosu" LICENCE.md + # Install launch script + install -Dm755 -t "$pkgdir/usr/bin" $_pkg + + # Install desktop and license file + local _share=/usr/share/ + install -Dm644 -t "$pkgdir/$_share/applications" $_pkg.desktop + install -Dm644 -t "$pkgdir/$_share/licenses/$_pkg" LICENCE.md + + # Install main file + cd squashfs-root + cp -r opt $pkgdir + install -Dm644 'osu!.png' "$pkgdir/$_share/pixmaps/$_pkg.png" } @@ -1,6 +1,92 @@ -#!/bin/sh -DATADIR=$HOME/.local/share/osu -if [ ! -d $DATADIR ]; then - mkdir -p $DATADIR -fi -env OSU_EXTERNAL_UPDATE_PROVIDER=1 /opt/mfosu/mfosu.appimage "$@" +#!/usr/bin/env bash + +#设定框架 +DISPLAYNAME="mfosu启动脚本" +LOGNAMES="*" + +# osu数据目录 +readonly XDG_OSU=${HOME}/.local/share/osu/ + +#默认重定向日志到lazer目录的mfosu-apprun.log +LOGTARGET="${LOGTARGET:-${XDG_OSU}/mfosu-apprun.log}" +MFOSU_AUTOLOG_WHEN_NOT_TERMINAL="${MFOSU_AUTOLOG_WHEN_NOT_TERMINAL:-true}" + +#mfosu目录 +readonly MFOSU="/opt/mfosu/" + +#是bash#shellcheck source=/dev/null #todo: 让shellcheck能正确source到common +source "${MFOSU}/scripts/base/common" || exit 255 + +#初始化日志文件 +true > "${LOGTARGET}" + +#设定LD_LIBRARY_PATH +export LD_LIBRARY_PATH="${MFOSU}/game":"${LD_LIBRARY_PATH}" + +function run_hook() +{ + local hookPath="${1}" + + if [ -f "${hookPath}" ];then + local hookBaseName="$(basename "${hookPath}")" + + #env文件直接source,允许用户通过此方式更改脚本的环境变量(甚至是部分函数?),其他文件则直接执行 + if [[ "${hookBaseName}" == *".env" ]];then + log "加载env文件:${hookBaseName}" + source "${hookPath}"; + else + log "执行钩子:${hookBaseName}" + "${hookPath}" >> "${LOGTARGET}" 2>>"${LOGTARGET}"|| log "LWARN" "未能成功执行钩子:$(basename "${hookBaseName}")" + fi + fi; +} + +function check_hooks() +{ + log "正在检查内部钩子..." + #先执行一遍AppImage里的hooks + for hook in "${MFOSU}/scripts/hooks"/*; do + run_hook "${hook}" + done + + unset hook + unset hookBaseName + + #然后执行用户定义的hooks + local storageConfig="${XDG_OSU}/storage.ini" + + if [ -f "${storageConfig}" ];then + local userStorage="$(grep "FullPath" "${storageConfig}")" + userStorage="${userStorage//FullPath = /}" + + log "正在检查用户钩子..." + for uhook in "${userStorage}/hooks"/*; do + run_hook "${uhook}" + done + fi + + unset uhook + unset uHookBaseName + unset userStorage + + unset check_hooks + unset run_hook +} + +#执行钩子 +check_hooks + +#启动游戏! +EXEC=${MFOSU}/game/'osu!' +log "启动游戏..." + +#设定PATH,确保$MFOSU/game永远在最前面 +export PATH="${MFOSU}/game":"${PATH}" +"${EXEC}" "$@" + +retCode="$?" +log "返回值为${retCode}" + +if [ ! ${retCode} -eq 0 ];then + log "LWARN" "游戏似乎没有正常退出?" +fi
\ No newline at end of file diff --git a/mfosu.desktop b/mfosu.desktop index 8f853f7d5c50..8569c577bda2 100644 --- a/mfosu.desktop +++ b/mfosu.desktop @@ -3,6 +3,7 @@ Type=Application Name=mfosu MimeType=application/x-osu-skin-archive;application/x-osu-replay;application/x-osu-beatmap-archive;x-scheme-handler/osu; Icon=/usr/share/pixmaps/mfosu.png -Comment=Open source free-to-win rhythm game -Exec=/usr/bin/mfosu +Comment=Rhythm is just a *click* away. +Comment[zh_CN]=节奏一*触*即发 +Exec=/usr/bin/mfosu %F Categories=Game; |