-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathfix-xcode-plugins-better
More file actions
executable file
·41 lines (33 loc) · 1.38 KB
/
fix-xcode-plugins-better
File metadata and controls
executable file
·41 lines (33 loc) · 1.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/usr/bin/env bash
#
action="$1"
if [[ "$action" == "process" ]]; then
INFO_PLIST="$2"
NEED_ADD_UUID="$3"
UUIDs=$(defaults read "${INFO_PLIST}" DVTPlugInCompatibilityUUIDs)
# 移除括号,空格,双引号,重复项
CLEANED_UUIDS=$(echo "$UUIDs" | sed -E -e "s/,|\(|\)//g" -e "s/[\t ]+//g" -e "s/\"//g" | sort | uniq)
# 合并多行为一行
JOINED_UUIDS=""
for i in ${CLEANED_UUIDS}; do
if [[ $i != "" ]]; then
JOINED_UUIDS="$JOINED_UUIDS $i"
fi
done
#echo "joined:$JOINED_UUIDS"
if echo "${JOINED_UUIDS}" | grep -q "${NEED_ADD_UUID}" ; then
defaults delete "${INFO_PLIST}" DVTPlugInCompatibilityUUIDs
# shellcheck disable=2086
defaults write "${INFO_PLIST}" DVTPlugInCompatibilityUUIDs -array $JOINED_UUIDS
else
echo "need append"
defaults delete "${INFO_PLIST}" DVTPlugInCompatibilityUUIDs
# shellcheck disable=2086
defaults write "${INFO_PLIST}" DVTPlugInCompatibilityUUIDs -array $JOINED_UUIDS $NEED_ADD_UUID
fi
else
DVTPlugInCompatibilityUUID=$(defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID)
echo "$DVTPlugInCompatibilityUUID"
Plugins_Folder="$HOME/Library/Application Support/Developer/Shared/Xcode/Plug-ins"
find "${Plugins_Folder}" -name Info.plist -exec "$0" process {} "$DVTPlugInCompatibilityUUID" \;
fi