From b3f7fbf634b71066c20d479f3c8161679d2b5e0a Mon Sep 17 00:00:00 2001 From: Zezik <1+zezik@noreply.localhost> Date: Sat, 12 Sep 2026 06:56:53 +0000 Subject: [PATCH] =?UTF-8?q?Nahr=C3=A1t=20soubory=20do=20=E2=80=9E/?= =?UTF-8?q?=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reset_crossover.sh | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 reset_crossover.sh diff --git a/reset_crossover.sh b/reset_crossover.sh new file mode 100644 index 0000000..f94e2ce --- /dev/null +++ b/reset_crossover.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +# --- Paths --- +PLIST_DOMAIN="com.codeweavers.CrossOver" +PLIST_PATH="$HOME/Library/Preferences/com.codeweavers.CrossOver.plist" +BOTTLES_DIR="$HOME/Library/Application Support/CrossOver/bottles" + +echo "--- CrossOver Maintenance Started ---" + +# 1. Safely stop CrossOver +if pgrep -x "CrossOver" > /dev/null; then + echo "Closing CrossOver..." + killall "CrossOver" +else + echo "CrossOver is already closed." +fi + +# 2. Reset the 14-day trial timestamp in the plist +if [ -f "$PLIST_PATH" ]; then + YESTERDAY=$(date -v-1d +"%Y-%m-%d %H:%M:%S +0000") + defaults write "$PLIST_DOMAIN" FirstRunDate -date "$YESTERDAY" + echo "✅ Trial date reset to: $YESTERDAY" +else + echo "⚠️ Global plist not found. Skipping trial date reset." +fi + +# 3. Clean the expired registry block with feedback +if [ -d "$BOTTLES_DIR" ]; then + find "$BOTTLES_DIR" -name "system.reg" | while read -r reg_file; do + bottle_name=$(basename "$(dirname "$reg_file")") + + # Check if the pattern exists before trying to replace it + if grep -qi "\[Software\\\\CodeWeavers\\\\CrossOver\\\\cxoffice\]" "$reg_file"; then + # Perform the multi-line deletion + perl -i -0777 -pe 's/^\[Software\\+CodeWeavers\\+CrossOver\\+cxoffice\].*?(\n\n|(?=\n\[)|$)/ /gmi' "$reg_file" + echo "✅ Cleaned expiration block from bottle: $bottle_name" + else + echo "ℹ️ Bottle \"$bottle_name\" is already clean." + fi + done +else + echo "⚠️ Bottles directory not found. Skipping registry cleaning." +fi + +echo "--- Maintenance Complete ---" \ No newline at end of file