From 6468863e3d62e2e6db3dd2e9339fbe7d1e722c55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Darcel?= Date: Wed, 21 Jan 2026 08:05:03 -0600 Subject: [PATCH] fix: trial reset since version 17.3.7 fix #1 --- reset-trial.sh | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) mode change 100644 => 100755 reset-trial.sh diff --git a/reset-trial.sh b/reset-trial.sh old mode 100644 new mode 100755 index e22be07..3e9ed4e --- a/reset-trial.sh +++ b/reset-trial.sh @@ -4,19 +4,22 @@ set -e file=$(defaults read /Applications/Navicat\ Premium.app/Contents/Info.plist) -regex="CFBundleShortVersionString = \"([^\.]+)" +regex="CFBundleShortVersionString = \"([^\"]+)\"" [[ $file =~ $regex ]] -version=${BASH_REMATCH[1]} +full_version=${BASH_REMATCH[1]} +version=${full_version%%.*} -echo "Detected Navicat Premium version $version" +echo "Detected Navicat Premium version $full_version" case $version in "17"|"16") - file=~/Library/Preferences/com.navicat.NavicatPremium.plist + service=com.navicat.NavicatPremium + file=~/Library/Preferences/$service.plist ;; "15") - file=~/Library/Preferences/com.prect.NavicatPremium15.plist + service=com.prect.NavicatPremium15 + file=~/Library/Preferences/$service.plist ;; *) echo "Version '$version' not handled" @@ -46,4 +49,22 @@ if [ ! -z $hash2 ]; then rm ~/Library/Application\ Support/PremiumSoft\ CyberTech/Navicat\ CC/Navicat\ Premium/.$hash2 fi +# Keychain cleanup only needed for v17.3.7+ +needs_keychain=false +if [[ "$version" == "17" ]]; then + IFS='.' read -r maj min patch <<< "$full_version" + if (( min > 3 )) || (( min == 3 && patch >= 7 )); then + needs_keychain=true + fi +fi + +if [ "$needs_keychain" = true ]; then + keychain_hash=$(security dump-keychain ~/Library/Keychains/login.keychain-db 2>/dev/null | grep -A 5 $service | grep acct | grep -oE '[0-9A-F]{32}') + + if [ ! -z $keychain_hash ]; then + echo "deleting keychain entry $keychain_hash..." + security delete-generic-password -s $service -a $keychain_hash &>/dev/null + fi +fi + echo "Done"