From 76e969714db252db7d6c66abb6b444c10c216051 Mon Sep 17 00:00:00 2001 From: shenmo Date: Mon, 26 Aug 2024 00:06:56 +0800 Subject: [PATCH] =?UTF-8?q?=09=E4=BF=AE=E6=94=B9=EF=BC=9A=20=20=20=20=20to?= =?UTF-8?q?ol/open-in-terminal/open-in-terminal=20=09=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=EF=BC=9A=20=20=20=20=20tool/ssinstall=20=09=E6=96=B0=E6=96=87?= =?UTF-8?q?=E4=BB=B6=EF=BC=9A=20=20=20tool/store-helper/ss-launcher?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tool/open-in-terminal/open-in-terminal | 27 ++++++---- tool/ssinstall | 4 +- tool/store-helper/ss-launcher | 74 ++++++++++++++++++++++++++ 3 files changed, 92 insertions(+), 13 deletions(-) create mode 100755 tool/store-helper/ss-launcher diff --git a/tool/open-in-terminal/open-in-terminal b/tool/open-in-terminal/open-in-terminal index f723f72..fda426d 100755 --- a/tool/open-in-terminal/open-in-terminal +++ b/tool/open-in-terminal/open-in-terminal @@ -6,20 +6,25 @@ if [ -z "$1" ]; then echo "${TRANSHELL_CONTENT_PLEASE_PROVIDE_FILE_PATH}" exit 1 fi -DESKTOP_FILE_PATH=$1 -if [[ $DESKTOP_FILE_PATH == file://* ]]; then - # 如果是,移除 'file://' 部分并输出结果 - DESKTOP_FILE_PATH="${DESKTOP_FILE_PATH#file://}" -fi -# 获取文件内容中Exec=后的命令 -exec_command=$(grep -oP "(?<=Exec=).*" "$DESKTOP_FILE_PATH") + DESKTOP_FILE_PATH=$1 -# 打印提取的命令 -echo "$exec_command" + if [[ $DESKTOP_FILE_PATH == file://* ]]; then + # 如果是,移除 'file://' 部分并输出结果 + DESKTOP_FILE_PATH="${DESKTOP_FILE_PATH#file://}" + fi -# 在默认终端执行命令 -eval "$exec_command" + # 获取文件内容中第一个 Exec= 后的命令 + exec_command=$(grep -m 1 -oP "(?<=Exec=).*" "$DESKTOP_FILE_PATH") + + # 删除 exec_command 中最后的 % 及其后面的内容 + exec_command="${exec_command%\%*}" + + # 打印提取的命令 + echo "$exec_command" + + # 在默认终端执行命令 + eval "$exec_command" echo -------------------------------------- echo "${TRANSHELL_CONTENT_ABOVE_IS_TERMINAL_OUTPUT}" diff --git a/tool/ssinstall b/tool/ssinstall index 862727b..0ea2124 100755 --- a/tool/ssinstall +++ b/tool/ssinstall @@ -60,7 +60,7 @@ function zenity() { function hash_check() { if [ ! -e "/var/lib/aptss/lists/d.spark-app.store_${STORE_URL}_Packages" ] && \ [ ! -e "/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ] && \ - [ ! -e "/var/lib/aptss/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages" ]; then + [ ! -e "/var/lib/aptss/lists/mirrors.sdu.edu.cn_spark-store_${STORE_URL}_Packages" ]; then echo "接收星火仓库软件信息中..." aptss ssupdate fi @@ -72,7 +72,7 @@ function hash_check() { PACKAGES_DATA_PATH="/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是d域名单目录仓库配置" else - PACKAGES_DATA_PATH="/var/lib/aptss/lists/mirrors.sdu.edu.cn_spark-store_${STORE_URL}_Packages" + PACKAGES_DATA_PATH="/var/lib/aptss/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages" echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是SDU镜像仓库配置" fi diff --git a/tool/store-helper/ss-launcher b/tool/store-helper/ss-launcher new file mode 100755 index 0000000..1d9ad9e --- /dev/null +++ b/tool/store-helper/ss-launcher @@ -0,0 +1,74 @@ +#!/bin/bash + +function scan_desktop_file(){ +unset desktop_file_path + for desktop_file_path in $(dpkg -L "$1" |grep /usr/share/applications/ | awk '/\.desktop$/ {print}'); do + if [ "$(cat $desktop_file_path | grep NoDisplay=true)" = "" ];then + echo "$desktop_file_path is found" + fi + done + for desktop_file_path in $(dpkg -L "$1" |grep /opt/apps/$package_name/entries/applications | awk '/\.desktop$/ {print}'); do + if [ "$(cat $desktop_file_path | grep NoDisplay=true)" = "" ];then + echo $desktop_file_path is found + fi + done + + +} + +function launch_app(){ + + # 检查是否传入了路径参数 + if [ -z "$1" ]; then + echo "请传入文件路径作为参数" + exit 1 + fi + + DESKTOP_FILE_PATH=$1 + + if [[ $DESKTOP_FILE_PATH == file://* ]]; then + # 如果是,移除 'file://' 部分并输出结果 + DESKTOP_FILE_PATH="${DESKTOP_FILE_PATH#file://}" + fi + + # 获取文件内容中第一个 Exec= 后的命令 + exec_command=$(grep -m 1 -oP "(?<=Exec=).*" "$DESKTOP_FILE_PATH") + + # 删除 exec_command 中最后的 % 及其后面的内容 + exec_command="${exec_command%\%*}" + + # 打印提取的命令 + echo "$exec_command" + + # 在默认终端执行命令 + eval "$exec_command" +} + +if [ "$#" -lt 2 ];then +echo "Usage: $0 check/launch packagename" +exit -1 +fi + + +if [ "$1" = "check" ];then + +scan_desktop_file "$2" + if [ "$desktop_file_path" = "" ];then + echo "No desktop file found. exit -1" + exit -1 + else + exit 0 + fi + + + +elif [ "$1" = "launch" ];then +scan_desktop_file "$2" + if [ "$desktop_file_path" = "" ];then + echo "No desktop file found. exit -1" + exit -1 + fi + + +launch_app "${desktop_file_path}" +fi