-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathxcode-launch.sh
More file actions
executable file
·104 lines (91 loc) · 2.04 KB
/
xcode-launch.sh
File metadata and controls
executable file
·104 lines (91 loc) · 2.04 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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#!/bin/bash
APPNAME="xcode-launch"
VERSION=0.0.3
usage() {
cat << _END_
$APPNAME $VERSION
Usage:
xcode [version] [project...]
xcode [option]
Some useful options are:
-s, --showsdks List all installed xcode version
-l, --list List xcode projects under current directory
_END_
}
show_sdks() {
VERSIONS=`ls /Applications/ | grep "^Xcode.*\.app" | sed -e 's/^Xcode.app$/(default)/' | sed -e 's/Xcode\(.*\).app/\1/'`
if [ "x$VERSIONS" = "x" ]; then
echo "xcode not found in /Applications"
else
echo "$VERSIONS"
fi
}
show_projects() {
find $* -type d -name '*.xcodeproj'
}
for opt in $*
do
case $opt in
'-v' | '--version' )
echo $APPNAME $VERSION
exit
;;
'-h' | '--help' )
usage
exit
;;
'-s' | '--showsdks' )
show_sdks
exit
;;
'-l' | '--list' )
show_projects .
exit
;;
esac
done
if [ -d "/Applications/Xcode$1.app" ]; then
XCODE_PATH="/Applications/Xcode$1.app"
shift
else
XCODE_PATH="/Applications/Xcode.app"
fi
ARGS=$*
if [ x$ARGS = x ]; then
ARGS="."
fi
FIND_COUNT=`show_projects $ARGS 2>/dev/null | wc -l `
if [ $FIND_COUNT -eq 0 ]; then
echo "xcode project not found."
exit
fi
if [ x$XCODE_LAUNCH_INTERACTIVE_SHELL != xnone ]; then
peco -h >/dev/null 2>&1
if [ $? -eq 0 ]; then
XCODE_LAUNCH_INTERACTIVE_SHELL=peco
fi
fi
if [ $FIND_COUNT -eq 1 ]; then
PROJECTS=`show_projects $ARGS`
elif [ x$XCODE_LAUNCH_INTERACTIVE_SHELL != xnone ]; then
PROJECTS=`show_projects $ARGS | $XCODE_LAUNCH_INTERACTIVE_SHELL`
else
show_projects $ARGS
echo "open multiple projects? [Y/n]"
read ANSWER
case $ANSWER in
"" | "Y" | "y" | "yes" | "Yes" | "YES")
PROJECTS=`show_projects $ARGS`
;;
*)
exit
;;
esac
fi
for project in $PROJECTS
do
if [ -d $project ]; then
echo "open -a $XCODE_PATH $project"
open -a $XCODE_PATH "$project"
fi
done