summaryrefslogtreecommitdiff
path: root/plugins/xcode
diff options
context:
space:
mode:
authorAndrew Janke <andrew@apjanke.net>2015-09-04 17:17:16 -0400
committerMarc Cornellà <marc.cornella@live.com>2015-09-07 11:50:45 +0200
commit5584aa05c7c94949665f024ad0d88b8162654cb9 (patch)
tree9be06e93437d2968d50cb04829cec9a4eaf8d3d3 /plugins/xcode
parentd95589d4e43d3a6288b8a66492c17d12c4e4eca0 (diff)
downloadzsh-5584aa05c7c94949665f024ad0d88b8162654cb9.tar.gz
zsh-5584aa05c7c94949665f024ad0d88b8162654cb9.tar.bz2
zsh-5584aa05c7c94949665f024ad0d88b8162654cb9.zip
xcode: add version-based xcselv()
Diffstat (limited to 'plugins/xcode')
-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)"