lib/xcode/install/install.rb in xcode-install-0.9.6 vs lib/xcode/install/install.rb in xcode-install-1.0.0
- old
+ new
@@ -1,5 +1,7 @@
+require 'uri'
+
module XcodeInstall
class Command
class Install < Command
self.command = 'install'
self.summary = 'Install a specific version of Xcode.'
@@ -7,19 +9,21 @@
self.arguments = [
CLAide::Argument.new('VERSION', :true)
]
def self.options
- [['--no-switch', 'Don’t switch to this version after installation'],
+ [['--url', 'Custom Xcode DMG file path or HTTP URL.'],
+ ['--no-switch', 'Don’t switch to this version after installation'],
['--no-install', 'Only download DMG, but do not install it.'],
['--no-progress', 'Don’t show download progress.'],
['--no-clean', 'Don’t delete DMG after installation.']].concat(super)
end
def initialize(argv)
@installer = Installer.new
@version = argv.shift_argument
+ @url = argv.option('url')
@should_clean = argv.flag?('clean', true)
@should_install = argv.flag?('install', true)
@should_switch = argv.flag?('switch', true)
@progress = argv.flag?('progress', true)
super
@@ -29,15 +33,18 @@
super
return if @version.nil?
fail Informative, "Version #{@version} already installed." if @installer.installed?(@version)
fail Informative, "Version #{@version} doesn't exist." unless @installer.exist?(@version)
+
+ if @url
+ fail Informative, "Invalid URL: `#{@url}`" unless @url =~ /\A#{URI::regexp}\z/
+ end
end
def run
- return if @version.nil?
@installer.install_version(@version, @should_switch, @should_clean, @should_install,
- @progress)
+ @progress, @url)
end
end
end
end