Browse Source

xcode: add version-based xcselv()

Andrew Janke 9 years ago
parent
commit
5584aa05c7
1 changed files with 29 additions and 0 deletions
  1. 29 0
      plugins/xcode/xcode.plugin.zsh

+ 29 - 0
plugins/xcode/xcode.plugin.zsh

@@ -17,6 +17,35 @@ alias xcb='xcodebuild'
 alias xcp='xcode-select --print-path'
 alias xcdd='rm -rf ~/Library/Developer/Xcode/DerivedData/*'
 
+
+# "XCode-SELect by Version" - select Xcode by just version number
+# Uses naming convention:
+#  - different versions of Xcode are named Xcode-<version>.app or stored
+#     in a folder named Xcode-<version>
+#  - the special version name "-" refers to the "default" Xcode.app with no suffix
+function xcselv {
+  emulate -L zsh
+  local version=$1
+  local apps_dirs apps_dir apps app
+  apps_dirs=( $HOME/Applications /Applications )
+  for apps_dir ($apps_dirs); do
+    if [[ $version == "-" ]]; then
+      apps=( $apps_dir/Xcode.app $apps_dir/Xcode/Xcode.app )
+    else
+      apps=( $apps_dir/Xcode-$version.app $apps_dir/Xcode-$version/Xcode.app )
+    fi
+    for app ($apps); do
+      if [[ -e "$app" ]]; then
+        echo "selecting Xcode $version: $app"
+        xcsel "$app"
+        return
+      fi
+    done
+  done
+  echo "xcselv: Xcode version $version not found"
+  return 1
+}
+
 function simulator {
   local devfolder
   devfolder="$(xcode-select -p)"