resetCrossoverTrial.sh
· 1.8 KiB · Bash
Raw
#!/usr/bin/env bash
CROSSOVER_PATH="/Applications/CrossOver.app/Contents/MacOS"
# Kill CrossOver processes
while true; do
pids=$(pgrep -f "CrossOver")
unique_pids=()
for pid in "${pids[@]}"; do
if [[ -n "$pid" && ! " ${unique_pids[@]} " =~ " ${pid} " ]]; then
unique_pids+=("$pid")
fi
done
if [ ${#unique_pids[@]} -gt 0 ]; then
echo "Killing CrossOver processes: ${unique_pids[@]}"
kill -9 "${unique_pids[@]}" >/dev/null 2>&1
else
echo "No CrossOver processes found."
break
fi
sleep 3
done
# Reset trial start date of CrossOver
while true; do
if /usr/libexec/PlistBuddy -c "Print :FirstRunDate" ~/Library/Preferences/com.codeweavers.CrossOver.plist &>/dev/null; then
plutil -remove FirstRunDate ~/Library/Preferences/com.codeweavers.CrossOver.plist
fi
if /usr/libexec/PlistBuddy -c "Print :FirstRunVersion" ~/Library/Preferences/com.codeweavers.CrossOver.plist &>/dev/null; then
plutil -remove FirstRunVersion ~/Library/Preferences/com.codeweavers.CrossOver.plist
fi
if ! /usr/libexec/PlistBuddy -c "Print :FirstRunDate" ~/Library/Preferences/com.codeweavers.CrossOver.plist &>/dev/null; then
echo "FirstRunDate not found in plist file. Deletion successful."
break
fi
done
# Reset trial start date of the bottles
while true; do
for i in ~/Library/Application\ Support/CrossOver/Bottles/*; do
if [ -d "$i" ]; then
sed -i '' '/\[Software\\\\CodeWeavers\\\\CrossOver\\\\cxoffice\].*/,+5d' "$i/system.reg"
break
fi
done
if ! grep -q '\[Software\\\\CodeWeavers\\\\CrossOver\\\\cxoffice\]' "$i/system.reg"; then
echo "Bottle trial reset successful."
break
fi
done
/usr/bin/osascript -e "display notification \"Crossover Trial Updated\""
1 | #!/usr/bin/env bash |
2 | |
3 | CROSSOVER_PATH="/Applications/CrossOver.app/Contents/MacOS" |
4 | |
5 | # Kill CrossOver processes |
6 | while 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 |
25 | done |
26 | |
27 | # Reset trial start date of CrossOver |
28 | while 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 |
40 | done |
41 | |
42 | # Reset trial start date of the bottles |
43 | while true; do |
44 | for 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 |
55 | done |
56 | /usr/bin/osascript -e "display notification \"Crossover Trial Updated\"" |