5584aa05c7c94949665f024ad0d88b8162654cb9

Author
Andrew Janke <andrew@apjanke.net>
Committer
Marc Cornellà <marc.cornella@live.com>
Date

Message

xcode: add version-based xcselv()

Diff

 1diff --git a/plugins/xcode/xcode.plugin.zsh b/plugins/xcode/xcode.plugin.zsh
 2index f80de36d5b6f5cd579edcd9be31d9e6f9f6aa2b1..b3058ceff37f2d5505fcb3e27bae7b5ef2e25de3 100644
 3--- a/plugins/xcode/xcode.plugin.zsh
 4+++ b/plugins/xcode/xcode.plugin.zsh
 5@@ -17,6 +17,35 @@ alias xcb='xcodebuild'
 6 alias xcp='xcode-select --print-path'
 7 alias xcdd='rm -rf ~/Library/Developer/Xcode/DerivedData/*'
 8 
 9+
10+# "XCode-SELect by Version" - select Xcode by just version number
11+# Uses naming convention:
12+#  - different versions of Xcode are named Xcode-<version>.app or stored
13+#     in a folder named Xcode-<version>
14+#  - the special version name "-" refers to the "default" Xcode.app with no suffix
15+function xcselv {
16+  emulate -L zsh
17+  local version=$1
18+  local apps_dirs apps_dir apps app
19+  apps_dirs=( $HOME/Applications /Applications )
20+  for apps_dir ($apps_dirs); do
21+    if [[ $version == "-" ]]; then
22+      apps=( $apps_dir/Xcode.app $apps_dir/Xcode/Xcode.app )
23+    else
24+      apps=( $apps_dir/Xcode-$version.app $apps_dir/Xcode-$version/Xcode.app )
25+    fi
26+    for app ($apps); do
27+      if [[ -e "$app" ]]; then
28+        echo "selecting Xcode $version: $app"
29+        xcsel "$app"
30+        return
31+      fi
32+    done
33+  done
34+  echo "xcselv: Xcode version $version not found"
35+  return 1
36+}
37+
38 function simulator {
39   local devfolder
40   devfolder="$(xcode-select -p)"