Skip to content

Add support of AOSC OS and loongson architecture #3593

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 91 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
b564c27
Add support of AOSC OS and loongson architecture
4Darmygeometry Jan 4, 2025
1e796cc
Update README.md
4Darmygeometry Jan 4, 2025
27bc5e6
Add LoongArch64 build script
4Darmygeometry Jan 4, 2025
4eb12ca
Add LoongArch64 Library Support
4Darmygeometry Jan 4, 2025
34e0507
标记统一使用.NET 9.0使得龙芯新世界代码与主线一致
4Darmygeometry Jan 5, 2025
a98edcd
Update README.md
4Darmygeometry Jan 5, 2025
6a83db6
Update README.en.md
4Darmygeometry Jan 5, 2025
61ba400
Update README.md
4Darmygeometry Jan 5, 2025
193147f
Update README.md
4Darmygeometry Jan 6, 2025
ec5a1d3
Update open-source-library.md
4Darmygeometry Jan 6, 2025
9be4b56
Update open-source-library.md
4Darmygeometry Jan 6, 2025
bfb3223
Merge branch 'BeyondDimension:develop' into develop
4Darmygeometry Jan 6, 2025
158fbba
Update README.md
4Darmygeometry Jan 6, 2025
8765655
Update README.en.md
4Darmygeometry Jan 6, 2025
2aa866d
添加libpng前置依赖所需的loongarch64 c文件
4Darmygeometry Jan 6, 2025
f8ce1d6
✨ 发布工具支持 RiscV64、, LoongArch64 发布
Mossimos Jan 7, 2025
8a10c47
添加龙芯3A6000电脑原生运行截图
4Darmygeometry Jan 7, 2025
17fe8dc
Update README.md
4Darmygeometry Jan 7, 2025
8bf605d
添加龙芯3A6000电脑加速github截图
4Darmygeometry Jan 8, 2025
ff9494c
添加龙芯nuget源注意事项
4Darmygeometry Jan 8, 2025
501b180
删除次要截图
4Darmygeometry Jan 8, 2025
2707dda
删除次要截图
4Darmygeometry Jan 8, 2025
44295a9
Add English screenshots
4Darmygeometry Jan 8, 2025
a805e24
Update README.en.md
4Darmygeometry Jan 8, 2025
700cd73
Add English Support
4Darmygeometry Jan 8, 2025
72d4be1
Update online_install.sh
4Darmygeometry Jan 8, 2025
e52b012
支持AOSC OS
4Darmygeometry Jan 8, 2025
6119ffb
支持中文和其他语言的的桌面文件夹
4Darmygeometry Jan 8, 2025
847d400
更新 README.md
4Darmygeometry Jan 9, 2025
c9d1280
Merge branch 'BeyondDimension:develop' into develop
4Darmygeometry Jan 11, 2025
52e830f
更新判断发行版方式测试文件
4Darmygeometry Jan 12, 2025
2fde011
通过/etc/os-release形式判断发行版并支持slackware等发行版包格式
4Darmygeometry Jan 13, 2025
472f7b8
Update README.md
4Darmygeometry Jan 13, 2025
214af04
紧急修改sh错误
4Darmygeometry Jan 13, 2025
4cd8fc2
Update README.md
4Darmygeometry Jan 13, 2025
7b7fc4c
Add files via upload
4Darmygeometry Jan 13, 2025
03dfad9
Add files via upload
4Darmygeometry Jan 13, 2025
bad37b3
Delete loongson-build.md
4Darmygeometry Jan 13, 2025
152cea3
Update README.md
4Darmygeometry Jan 13, 2025
bf32fef
把AOSC OS放在前面
4Darmygeometry Jan 14, 2025
0538ae5
纠正中科方德安装包错误并支持勇豹系统
4Darmygeometry Jan 16, 2025
1a6441b
脚本已无需依赖pv,去掉pv安装选项
4Darmygeometry Jan 16, 2025
233da9f
Update README.md
4Darmygeometry Jan 16, 2025
2560cdf
恢复回原来的readme
4Darmygeometry Jan 17, 2025
923418c
Delete doc/loongson-build.md
4Darmygeometry Jan 17, 2025
6a15d6e
Delete res/screenshots/linux-3A6000-ASF-en.png
4Darmygeometry Jan 17, 2025
652401e
Delete res/screenshots/linux-3A6000-ASF.png
4Darmygeometry Jan 17, 2025
dd09b1d
Delete res/screenshots/linux-3A6000-accelerate-en.png
4Darmygeometry Jan 17, 2025
a1cb858
Delete res/screenshots/linux-3A6000-accelerate.png
4Darmygeometry Jan 17, 2025
3a1669f
Delete res/screenshots/linux-3A6000-settings-en.png
4Darmygeometry Jan 17, 2025
80bdae0
Delete res/screenshots/linux-3A6000-settings.png
4Darmygeometry Jan 17, 2025
aa712fb
Merge branch 'BeyondDimension:develop' into develop
4Darmygeometry Jan 23, 2025
1a0642b
尝试解决分支冲突
4Darmygeometry Jan 23, 2025
8590d5c
Merge branch 'develop' into develop
4Darmygeometry Jan 23, 2025
a2d834f
重新添加龙架构判断
4Darmygeometry Jan 23, 2025
e90a359
更新龙架构编译脚本
4Darmygeometry Jan 23, 2025
d21c5b7
更新龙架构构建脚本
4Darmygeometry Jan 24, 2025
e05a732
dotnet 9.0
4Darmygeometry Jan 24, 2025
9bca062
update mac script to dotnet 9.0
4Darmygeometry Jan 24, 2025
06b1156
Merge branch 'BeyondDimension:develop' into develop
4Darmygeometry Feb 14, 2025
2780e57
Merge branch 'BeyondDimension:develop' into develop
4Darmygeometry Mar 9, 2025
e98a8c2
Merge branch 'BeyondDimension:develop' into develop
4Darmygeometry Mar 10, 2025
9368ebc
Merge branch 'BeyondDimension:develop' into develop
4Darmygeometry Mar 11, 2025
f4ded78
解决LoongArchLinux及缺少wget发行版的下载问题
4Darmygeometry Mar 11, 2025
8f4f0af
Merge branch 'BeyondDimension:develop' into develop
4Darmygeometry Mar 13, 2025
3d4b1c0
Update Program.cs
4Darmygeometry Mar 14, 2025
6e47077
Update Program.cs
4Darmygeometry Mar 14, 2025
e08532a
Merge branch 'BeyondDimension:develop' into develop
4Darmygeometry Mar 16, 2025
ea39ee7
Merge branch 'BeyondDimension:develop' into develop
4Darmygeometry Mar 18, 2025
b56fbcc
Merge branch 'BeyondDimension:develop' into develop
4Darmygeometry Mar 19, 2025
fb9fbdc
Merge branch 'BeyondDimension:develop' into develop
4Darmygeometry Mar 21, 2025
611460a
Merge branch 'BeyondDimension:develop' into develop
4Darmygeometry Mar 24, 2025
1c13f6b
Program.cs:SkiaSharp的龙架构和RISC-V支持已经主线化了
4Darmygeometry Mar 29, 2025
e20ae36
使用/p:PublishTrimmed=true压缩龙架构二进制文件体积
4Darmygeometry Apr 1, 2025
0335d1a
在Linux脚本中添加32位系统直接退出选项
4Darmygeometry Apr 1, 2025
0ef66a1
之前放错脚本了
4Darmygeometry Apr 1, 2025
5291d55
Update and rename testcommand.sh to Linux.sh
4Darmygeometry Apr 1, 2025
b47626d
添加扩展指令判断脚本
4Darmygeometry Apr 1, 2025
9ec9cec
更新指令集判断脚本
4Darmygeometry Apr 1, 2025
d3a56c4
添加对系统Glibc库还是musl库的判断
4Darmygeometry Apr 2, 2025
1dd9227
Update Linux.sh
4Darmygeometry Apr 6, 2025
370ba48
CRLF to LF
4Darmygeometry Apr 6, 2025
15107d5
Add copy command
4Darmygeometry Apr 6, 2025
103d528
修正安装脚本报错
4Darmygeometry Apr 6, 2025
f549bd4
WattToolkit.sln:Update it to support RV64 and LA64
4Darmygeometry Apr 7, 2025
9a7e71d
CRLF TO LF
4Darmygeometry Apr 7, 2025
6f881b2
RV64指令集支持改进
4Darmygeometry Apr 8, 2025
3429839
Create rv64_build.sh
4Darmygeometry Apr 8, 2025
9403d53
添加对中标麒麟(使用dnf)与开放麒麟(使用apt)的支持
4Darmygeometry Apr 17, 2025
db2bd62
修正脚本错误
4Darmygeometry Apr 17, 2025
8f0af33
Merge branch 'BeyondDimension:develop' into develop
4Darmygeometry May 7, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
858 changes: 429 additions & 429 deletions WattToolkit.sln

Large diffs are not rendered by default.

57 changes: 57 additions & 0 deletions build/linux/ISACheck.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#!/bin/bash

set -euo pipefail

# 获取CPU架构
arch=$(uname -m)

# 检查CPU指令集扩展
case $arch in
x86_64)
# 检查是否支持SSE4.2
if grep -iq 'sse4_2' /proc/cpuinfo; then
echo "该CPU及Linux发行版支持SSE4.2扩展指令集,可以正常运行Watt Toolkit"
else
echo "该CPU或Linux发行版不支持SSE4.2扩展指令集,可能不能正常运行Watt Toolkit!"
exit 1
fi
;;
aarch64 | arm64)
# 检查是否支持NEON
if grep -iq -e 'neon' -e 'asimd' /proc/cpuinfo; then
echo "该CPU及Linux发行版支持ARM SIMD扩展指令集(NEON/ASIMD),可以正常运行Watt Toolkit"
else
echo "该CPU或Linux发行版不支持ARM SIMD扩展指令集(NEON/ASIMD),可能不能正常运行Watt Toolkit!"
exit 1
fi
;;
loongarch64)
# 检查是否支持LSX和LASX,Watt Toolkit龙芯版的运行同时需要LSX与LASX。先检查Linux内核是否大于6.6
major=$(uname -r | awk -F '[.-]' '{print $1}')
minor=$(uname -r | awk -F '[.-]' '{print $2}' | sed 's/[^0-9].*//')
minor=${minor:-0}
if [ "$major" -gt 6 ] || { [ "$major" -eq 6 ] && [ "$minor" -ge 6 ]; }; then
if grep -iq 'lsx' /proc/cpuinfo && grep -iq 'lasx' /proc/cpuinfo; then
echo "该CPU及Linux发行版同时支持LSX和LASX扩展指令集,可以正常运行Watt Toolkit"
else
echo "Watt Toolkit所需的.NET需要强制LSX或LASX,该CPU至少缺LSX或LASX不满足要求。"
exit 1
fi
else
echo "内核版本<6.6,不足以运行Watt Toolkit新世界发行版"
exit 1
fi
;;
riscv64)
echo "由于绝大部分RISC-V 64开发版不支持RVV 1.0指令,且检测该指令命令复杂,此处不检测。"
;;
i?86 | arm*)
# 32位不再受到支持
echo "Watt Toolkit不再支持32位,32位用户请自行在Github/Gitee下载旧版使用,谢谢。"
exit 1
;;
*)
echo "未知CPU架构:$arch"
exit 1
;;
esac
210 changes: 210 additions & 0 deletions build/linux/Linux.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,210 @@
#!/bin/bash
default_base_path="$HOME/WattToolkit"
base_path="$default_base_path"
[ "$EUID" -eq 0 ] && { echo "此脚本不能以root身份执行。"; exit 1; }
command -v ldd &>/dev/null || { echo "Error: ldd tools is missing, please install ldd in your system."; exit 1; }
ldd --version 2>&1 | grep -qi 'musl' && { echo "Error: Watt Toolkit didn't support Linux distribution which use musl library, please use another tools." >&2; exit 1; } || echo "系统使用Glibc,继续运行..."
command -v dialog &>/dev/null && dialog1="dialog" || dialog1="whiptail"
while true; do
if command -v zenity &>/dev/null; then
custom_base_path=$(zenity --entry --title="安装路径" --text="请输入安装路径(默认为 "$default_base_path",不输入则使用默认路径)")
else
custom_base_path=$($dialog1 --title "安装路径" --inputbox "请输入安装路径(默认为 "$default_base_path",不输入则使用默认路径)" 10 60 3>&1 1>&2 2>&3)
fi
[ -n "$custom_base_path" ] && { base_path="$custom_base_path"; break; } || [ -z "$custom_base_path" ] && break
done
mkdir -p "$base_path" || { echo "无法创建安装路径 $base_path,请检查权限或路径是否正确。"; exit 1; }
cd "$base_path" || { echo "无法切换到安装路径 $base_path,请检查权限或路径是否正确。"; exit 1; }
appVer_path="$base_path/WattToolkit.AppVer"
exec_name="Steam++"
tar_name="WattToolkit.tgz"
tar_path="$base_path/$tar_name"
base_url="https://api.steampp.net"
architecture=1
app_name="Watt Toolkit"
title="下载 $app_name"
PROCESS_NAMES=("$exec_name" "$app_name")
Check_LC_Code() {
current_lang="${LC_ALL:-$LANG}"
echo "当前语言环境: $current_lang"
if [ "$current_lang" = "C" ] || [ "$current_lang" = "C.UTF-8" ]; then
echo "当前语言环境是 C 或 C.UTF-8,需要修改。"
supported_locales=$(locale -a)
[ -z "$supported_locales" ] && { echo "未能获取到支持的语言环境列表。请检查系统配置。"; return 1; }
for locale in $supported_locales; do
[ "$locale" != "C" ] && [ "$locale" != "C.UTF-8" ] && { export LC_ALL="$locale"; echo "语言环境已修改为 $locale。"; break; }
done
else
echo "当前语言环境不是 C 或 C.UTF-8,无需修改。"
fi
}
Check_LC_Code
Determine_distribution() {
os_id=$(grep "^ID=" /etc/os-release|cut -d'=' -f2|tr -d '"'|tr '[:upper:]' '[:lower:]')
echo "OS ID: $os_id"
case "$os_id" in
"ubuntu"|"debian"|"kali"|"mx"|"devuan"|"pureos"|"parrot"|"trisquel"|"bunsenlabs"|"deepin"|"antix"|"uos"|"kylin"|"openkylin"|"loongnix"|"gxde"|"nfsdesktop")
installprefix="sudo apt install -y"; nssvar="libnss3-tools"; packageupdate="sudo apt update" ;;
"fedora"|"neokylin") installprefix="sudo dnf install -y"; nssvar="nss-tools" ;;
"centos"|"rhel"|"rocky"|"alma"|"amzn"|"alt") installprefix="sudo yum install -y"; nssvar="nss-tools";;
"opensuse") installprefix="sudo zypper install"; nssvar="mozilla-nss-tools"; packageupdate="sudo zypper refresh" ;;
"arch"|"manjaro"|"artix"|"chakra"|"blackarch"|"frugalware") installprefix="sudo pacman -Sy"; nssvar="nss" ;;
"mageia"|"pclinuxos"|"openmandriva"|"rosa"|"vectorlinux") installprefix="sudo urpmi"; nssvar="nss-tools"; packageupdate="sudo urpmi.update -a";;
"slackware"|"salix"|"porteus"|"slacko") installprefix="sudo slackpkg install"; nssvar="nss"; packageupdate="sudo slackpkg update gpg; sudo slackpkg update;";;
"aosc") installprefix="sudo oma install -y"; nssvar="nss" ;;
"gentoo") installprefix="sudo emerge -av"; nssvar="nss"; packageupdate="sudo emerge --sync" ;;
"solus") installprefix="sudo eopkg install"; nssvar="nss-tools"; packageupdate="sudo eopkg update-repo" ;;
*) manualins="1" ;;
esac
}
Determine_distribution
Install_wget() {
if command -v wget &>/dev/null; then
echo "wget 工具已安装。"
elif [ "$manualins" == "1" ]; then
echo "请手动安装 wget 工具。"
else
echo "安装包网上下载需要使用 wget 工具。"
if [ "$os_id" == "gentoo" ]; then
$installprefix net-misc/wget
else
$installprefix wget
fi
echo "wget 工具已安装。"
fi
}
Install_certutil() {
command -v certutil &>/dev/null && echo "certutil 工具已安装。" || { [ "$manualins" == "1" ] && echo "请手动安装 certutil 工具。" || { echo "证书导入以及验证需要使用 certutil 工具。";[-z "$packageupdate"]&&$packageupdate; $installprefix $nssvar;certutil_Init; [ "$os_id" == "loongnix" ] && { sudo ln -s /usr/sbin/setcap /usr/bin/setcap; sudo apt update; } || echo "certutil 工具已安装。"; } }
}
certutil_Init() {
certutil -d $HOME/.pki/nssdb -L || { echo "即将初始化 certutil \$HOME/.pki/nssdb"; mkdir -p $HOME/.pki/nssdb; chmod 700 $HOME/.pki/nssdb; certutil -d $HOME/.pki/nssdb -N --empty-password; }
}
Install_jq() {
command -v jq &>/dev/null && echo "jq 工具已安装。" || { [ "$manualins" == "1" ] && echo "请手动安装 jq 工具。" || { echo "jq 用来解析版本更新。";[-z "$packageupdate"]&&$packageupdate;$installprefix jq; echo "jq 工具已安装。"; } }
}
Install_zenity() {
command -v zenity &>/dev/null && echo "zenity 工具已安装。" || { [ "$manualins" == "1" ] && echo "请手动安装 zenity 工具。" || { echo "安装过程需要 zenity 工具。";[-z "$packageupdate"]&&$packageupdate;$installprefix zenity; echo "zenity 工具已安装。"; } }
}
Show_Run() {
if [ "$os_id" != "yongbao" ]; then zenity --question --text="$1" --width=400; else whiptail --yesno "$1" 10 60; fi
[ $? -eq 0 ] && { echo "程序已启动。"; exit 0 & /bin/sh -c "$base_path/$exec_name.sh"; } || exit 0
}
Get_NewVer() {
arch=$(uname -m)
case $arch in
x86_64) architecture=1 ;;
aarch64) architecture=3 ;;
loongarch64 | loong64) architecture=6 ;;
i?86 | arm*) zenity --info --text="Watt Toolkit不再支持32位,32位用户请自行在Github/Gitee下载旧版使用,谢谢。" --width=300; exit 244 ;;
*) [ "$os_id" != "yongbao" ] && zenity --info --text="未知的设备架构:$arch!" --width=300 || whiptail --msgbox "未知的设备架构:$arch!" 10 60; exit 244 ;;
esac
[ "$os_id" != "yongbao" ] && os_version=$(grep -E 'VERSION_ID=' /etc/os-release | awk -F'=' '{ print $2 }' | tr -d '"') || os_version=$(grep -E 'VERSION=' /etc/os-release | awk -F'=' '{ print $2 }' | tr -d '"')
[ -z "$os_version" ] && os_version=$(grep -E 'BUILD_ID=' /etc/os-release | awk -F'=' '{ print $2 }' | tr -d '"')
IFS='.' read -ra version_parts <<<"$os_version"
major_version=${version_parts[0]}
minor_version=${version_parts[1]:-0}
case "$os_id" in
"arch" | "manjaro" | "artix" | "chakra" | "blackarch" | "frugalware") wget "$base_url/basic/versions/8/16/$architecture/1/1/-1/0/" -O "$appVer_path" 2>&1 ;;
*) wget "$base_url/basic/versions/8/16/$architecture/$major_version/$minor_version/-1/0/" -O "$appVer_path" 2>&1 ;;
esac
n_sha384=$(jq -r '.["\uD83E\uDD93"].Downloads[0].SHA384' "$appVer_path")
downloads_url=$(jq -r '.["\uD83E\uDD93"].Downloads[0].DownloadUrl' "$appVer_path")
[ -z "$n_sha384" ] && { [ "$os_id" != "yongbao" ] && zenity --info --text="未知的最新版本 Hash:$n_sha384!" --width=300 || whiptail --msgbox "未知的最新版本 Hash:$n_sha384!" 10 60; exit 244; }
[ -f "AppVer" ] && o_sha384=$(cat "AppVer")
[ -e "AppVer" ] && [ "${o_sha384,,}" = "${n_sha384,,}" ] && { Show_Run "已是最新版本,是否启动程序?"; exit 0; }
}
Download_File() {
rm -rf $tar_path
[ "$os_id" != "yongbao" ] && dialog1=zenity || dialog1=whiptail
for i in {1..3}; do
if [ "$os_id" != "yongbao" ]; then
wget "$downloads_url" -O "$tar_path" 2>&1 | sed -u 's/.* \([0-9]\+%\)\ \+\([0-9.]\+.\) \(.*\)/\1\n# 下载中 \2\/s, 剩余时间: \3/' | zenity --progress --title="$title" --auto-close --width=500
else
wget "$downloads_url" -O "$tar_path" 2>&1 | sed -u 's/.* \([0-9]\+\)%.*/\1/' | whiptail --title "$title" --gauge "正在下载中" 10 60 0
fi
RUNNING=0
while [ $RUNNING -eq 0 ]; do
[ -z "$(pidof $dialog1)" ] && { pkill wget; RUNNING=1; }
sleep 0.1
done
echo 正在计算哈希值
actual_hash=$(sha384sum "$tar_name" | awk '{ print $1 }')
[ "${actual_hash,,}" = "${n_sha384,,}" ] && { rm "AppVer"; echo "${actual_hash,,}" >>"$base_path/AppVer"; break 2; }
[ "$i" -ge "3" ] && { [ "$os_id" != "yongbao" ] && zenity --error --text="下载错误。" --width=500 || whiptail --msgbox "下载错误。" 10 60; exit 1; }
done
}
Kill_Process() {
Kill_MAX_RETRIES=3
for process_name in "${PROCESS_NAMES[@]}"; do
kill_retry=1
while [ $kill_retry -le $Kill_MAX_RETRIES ]; do
pid=$(pgrep "$process_name")
[ -n "$pid" ] && { echo "尝试 $kill_retry: 进程 $process_name 正在运行中。正在终止..."; kill $pid; sleep 2; } || break
kill_retry=$((kill_retry + 1))
done
done
for process_name in "${PROCESS_NAMES[@]}"; do
pgrep -x "$process_name" >/dev/null && { echo "无法终止程序 $process_name。尝试次数已达上限。"; exit 1; } || echo "程序 $process_name 已成功终止。"
done
}
show_progress() {
if [ "$os_id" != "yongbao" ]; then
zenity --progress --title="$app_name" --text="获取压缩包信息中..." --width=500 --auto-close --no-cancel
else
whiptail --gauge "$app_name" 10 60 0
fi
}
Decompression() {
echo "正在校验安装包"
{
TOTAL_FILES=$(tar tf "$tar_name" 2>/dev/null | wc -l)
COUNTER=0
tar -xzvf "$tar_name" 2>/dev/null | while read -r FILE; do
COUNTER=$((COUNTER + 1))
PERCENTAGE=$((COUNTER * 100 / TOTAL_FILES))
echo "# 解压 $FILE"
echo "$PERCENTAGE"
done
echo "100"
}| { ([ "$os_id" != "yongbao" ] && zenity --progress --title="安装中" --text="正在解压文件..." --width=500 --percentage=0 --auto-close --no-cancel || whiptail --title "安装中" --gauge "正在解压文件..." 10 60 0)}
rm -f "$appVer_path" &>/dev/null
dotnet_path="$base_path/dotnet"
dotnet_exec="$dotnet_path/dotnet"
[ -x "$dotnet_exec" ] || chmod +x "$dotnet_exec"
chmod +x "$base_path/$exec_name.sh"
}
Install_wget
Install_certutil
[ "$os_id" != "yongbao" ] && Install_zenity || echo 勇豹没有包管理器,不能安装zenity,此处以whiptail代替
Install_jq
Get_NewVer
if [ -f "$tar_path" ]; then
temp_hash=$(sha384sum "$tar_path" | awk '{ print $1 }')
[ "${temp_hash,,}" != "${n_sha384,,}" ] && Download_File || { rm "$base_path/AppVer"; echo "${temp_hash,,}" >>"$base_path/AppVer"; if [ "$os_id" != "yongbao" ]; then zenity --question --text="本地已有最新安装包是否继续解压?" --width=400; else whiptail --yesno "本地已有最新安装包是否继续解压?" 10 60; fi; [ $? -eq 0 ] && echo "继续解压" || exit 0; }
else
Download_File
fi
Kill_Process
Decompression
InitDesktop() {
XDG_DESKTOP_DIR=$(command -v xdg-user-dir &>/dev/null && xdg-user-dir DESKTOP || echo "$HOME/Desktop")
while true; do
choice=$([ "$os_id" != "yongbao" ] && { zenity --list --radiolist --title="请选择要添加到的位置" --column="选择" --column="路径" TRUE "$XDG_DESKTOP_DIR" FALSE "$HOME/.local/share/applications/";} || { whiptail --title "请选择要添加到的位置" --radiolist "" 10 60 2 "$XDG_DESKTOP_DIR" "" ON "$HOME/.local/share/applications/" "" OFF 3>&1 1>&2 2>&3;} )
[ "$choice" == "$HOME/.local/share/applications/" ] && { target_dir="$HOME/.local/share/applications/"; break; } || [ "$choice" == "$XDG_DESKTOP_DIR" ] && { target_dir="$XDG_DESKTOP_DIR"; break; } || [ "$os_id" != "yongbao" ] && zenity --info --text="无效选项,请重新选择。" --width=300 || whiptail --msgbox "无效选项,请重新选择。" 10 60
done
rm -rf "$target_dir/Watt Toolkit.desktop" 2>/dev/null
cat <<EOT > "$target_dir/Watt Toolkit.desktop"
[Desktop Entry]
Name=Watt Toolkit
Exec=$base_path/$exec_name.sh
Icon=$base_path/Icons/Watt-Toolkit.png
Terminal=false
Type=Application
StartupNotify=false
EOT
chmod +x "$target_dir/Watt Toolkit.desktop"
}
InitDesktop
if [ "$os_id" = "yongbao" ]; then sudo chmod u+s $(which pkexec); fi
Show_Run "下载安装完成,是否启动程序?"
exit 0
24 changes: 22 additions & 2 deletions build/linux/Steam++.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,30 @@ export DOTNET_ROOT="$dotnet_path"
link_exec="$run_path/Steam++"
# 判断符号链接是否存在
if [ -L "$link_exec" ]; then
echo "符号链接 $link_exec 已存在"
case $LANG in
zh_CN.UTF-8)
echo "符号链接 $link_exec 已存在"
;;
en_US.UTF-8)
echo "Symbolic link $link_exec has been existed"
;;
*)
echo "Symbolic link $link_exec has been existed"
;;
esac
else
rm -rf "$link_exec" 2>/dev/null
echo "创建符号链接 $dotnet_exec 到 $link_exec"
case $LANG in
zh_CN.UTF-8)
echo "创建符号链接 $dotnet_exec 到 $link_exec"
;;
en_US.UTF-8)
echo "Create symbolic link $dotnet_exec to $link_exec"
;;
*)
echo "Create symbolic link $dotnet_exec to $link_exec"
;;
esac
ln -s "$dotnet_exec" "$link_exec"
chmod +x "$link_exec"
fi
Expand Down
Loading