summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/xcode/xcode.plugin.zsh29
1 files changed, 29 insertions, 0 deletions
diff --git a/plugins/xcode/xcode.plugin.zsh b/plugins/xcode/xcode.plugin.zsh
index f80de36d5..b3058ceff 100644
--- a/plugins/xcode/xcode.plugin.zsh
+++ b/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)"