这是indexloc提供的服务,不要输入任何密码
Skip to content
Closed
Changes from all commits
Commits
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
70 changes: 70 additions & 0 deletions scripts/termux-info.in
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,72 @@ if [ "$#" != "0" ]; then
show_usage
fi

check_apk_update () {
if ! command -v curl &> /dev/null; then
echo "Warning: 'curl' not found. Install with 'pkg install curl' to enable APK update check."
return
fi

if ! command -v jq &> /dev/null; then
echo "Warning: 'jq' not found. Install with 'pkg install jq' to enable APK update check."
return
fi

local TERMUX_SOURCE="${TERMUX_APP__APK_RELEASE:-$TERMUX_APK_RELEASE}"
local CURRENT_VERSION="${TERMUX_VERSION}"
local RELEASE_DATA
local LATEST_VERSION=""
local URL_API
local DOWNLOAD_URL
local SOURCE_NAME="${TERMUX_APK_RELEASE}"

case "$TERMUX_SOURCE" in
"GITHUB")
URL_API="https://api.github.com/repos/termux/termux-app/releases/latest"
DOWNLOAD_URL="https://github.com/termux/termux-app/releases/latest"
;;

"F_DROID")
URL_API="https://f-droid.org/api/v1/packages/com.termux"
DOWNLOAD_URL="https://f-droid.org/en/packages/com.termux"
;;

*)
echo "Info: Termux APK Source ('$TERMUX_SOURCE') is unknown. Check skipped."
return
;;
esac

if ! RELEASE_DATA=$(curl --fail -s "$URL_API"); then
echo "# API URL Source: $URL_API"
echo "[!] Failed to connect to the internet or fetch $SOURCE_NAME release data."
return
fi

if [[ "$TERMUX_SOURCE" == "GITHUB" ]]; then
LATEST_VERSION=$(jq -r '.tag_name' <<< "$RELEASE_DATA" | sed 's/^v//')
elif [[ "$TERMUX_SOURCE" == "F_DROID" ]]; then
# Find versionName matching suggestedVersionCode
LATEST_VERSION=$(jq -r '. as $data | $data.packages[] | select(.versionCode == $data.suggestedVersionCode) | .versionName' <<< "$RELEASE_DATA")
fi

if [[ -z "$LATEST_VERSION" || "$LATEST_VERSION" == "null" ]]; then
echo "Warning: Failed to get the latest version number from $SOURCE_NAME."
return
fi

if [[ "$LATEST_VERSION" == "$CURRENT_VERSION" ]]; then
echo "# API URL Source: $URL_API"
echo "Termux APK version $CURRENT_VERSION from $SOURCE_NAME is up to date."
else
echo "# API URL Source: $URL_API"
echo "[!]New version available ($SOURCE_NAME)"
echo "Latest version: $LATEST_VERSION"
echo "Current version: $CURRENT_VERSION"
echo "Download from: $DOWNLOAD_URL"
fi
}

updates() {
local updatable

Expand Down Expand Up @@ -108,6 +174,10 @@ unsupported
"
fi

output+="Termux APK Update Status:
$(check_apk_update)
"

output+="Packages CPU architecture:
$(
if [ "$TERMUX_APP_PACKAGE_MANAGER" = "apt" ]; then
Expand Down