From 152952b8c2ef4ce379c908178fddc6f82d2e224c Mon Sep 17 00:00:00 2001 From: wangqiyang Date: Mon, 10 Aug 2026 23:15:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20Firefox=20=E7=A6=BB?= =?UTF-8?q?=E7=BA=BF=E5=8C=85=E5=8C=85=E5=90=8D=E8=AF=86=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/m9zCtrlTty/firefox_install.go | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/apps/m9zCtrlTty/firefox_install.go b/apps/m9zCtrlTty/firefox_install.go index 1cb1b49..9d51d01 100644 --- a/apps/m9zCtrlTty/firefox_install.go +++ b/apps/m9zCtrlTty/firefox_install.go @@ -139,11 +139,24 @@ select_deb() { cp -v "$deb" /opt/firefox-installable/ selected_count=$((selected_count + 1)) } +package_name_from_deb() { + pkg=$(dpkg-deb -f "$1" Package 2>/dev/null || true) + if [ -n "$pkg" ]; then + echo "$pkg" + return 0 + fi + file=$(basename "$1") + echo "$file" | cut -d '_' -f 1 | sed 's/[.]deb$//' +} for deb in /opt/firefox-deb/*.deb; do [ -e "$deb" ] || continue file=$(basename "$deb") - pkg=${file%%_*} - pkg=${pkg%%.deb} + pkg=$(package_name_from_deb "$deb") + if [ -z "$pkg" ]; then + echo "skip package with empty name: $file" + continue + fi + echo "package candidate: $file package=$pkg" status=$(dpkg-query -W -f='${Status}' "$pkg" 2>/dev/null || true) installed=0