Last active 1744965609

resetCrossoverTrial.sh Raw
1#!/usr/bin/env bash
2
3CROSSOVER_PATH="/Applications/CrossOver.app/Contents/MacOS"
4
5# Kill CrossOver processes
6while true; do
7 pids=$(pgrep -f "CrossOver")
8
9 unique_pids=()
10 for pid in "${pids[@]}"; do
11 if [[ -n "$pid" && ! " ${unique_pids[@]} " =~ " ${pid} " ]]; then
12 unique_pids+=("$pid")
13 fi
14 done
15
16 if [ ${#unique_pids[@]} -gt 0 ]; then
17 echo "Killing CrossOver processes: ${unique_pids[@]}"
18 kill -9 "${unique_pids[@]}" >/dev/null 2>&1
19 else
20 echo "No CrossOver processes found."
21 break
22 fi
23
24 sleep 3
25done
26
27# Reset trial start date of CrossOver
28while true; do
29 if /usr/libexec/PlistBuddy -c "Print :FirstRunDate" ~/Library/Preferences/com.codeweavers.CrossOver.plist &>/dev/null; then
30 plutil -remove FirstRunDate ~/Library/Preferences/com.codeweavers.CrossOver.plist
31 fi
32
33 if /usr/libexec/PlistBuddy -c "Print :FirstRunVersion" ~/Library/Preferences/com.codeweavers.CrossOver.plist &>/dev/null; then
34 plutil -remove FirstRunVersion ~/Library/Preferences/com.codeweavers.CrossOver.plist
35 fi
36 if ! /usr/libexec/PlistBuddy -c "Print :FirstRunDate" ~/Library/Preferences/com.codeweavers.CrossOver.plist &>/dev/null; then
37 echo "FirstRunDate not found in plist file. Deletion successful."
38 break
39 fi
40done
41
42# Reset trial start date of the bottles
43while true; do
44for i in ~/Library/Application\ Support/CrossOver/Bottles/*; do
45 if [ -d "$i" ]; then
46 sed -i '' '/\[Software\\\\CodeWeavers\\\\CrossOver\\\\cxoffice\].*/,+5d' "$i/system.reg"
47 break
48 fi
49 done
50
51 if ! grep -q '\[Software\\\\CodeWeavers\\\\CrossOver\\\\cxoffice\]' "$i/system.reg"; then
52 echo "Bottle trial reset successful."
53 break
54 fi
55done
56/usr/bin/osascript -e "display notification \"Crossover Trial Updated\""