fix: trial reset since version 17.3.7

fix #1
This commit is contained in:
Kévin Darcel
2026-01-21 08:05:03 -06:00
parent 74ac33e72d
commit 6468863e3d

31
reset-trial.sh Normal file → Executable file
View File

@@ -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"