Sha256: 6c7056fc6f3916550ee41b75aeb82cc64f5f32bcc61671d2cb43ffa8807b1f73

Contents?: true

Size: 1.05 KB

Versions: 2

Compression:

Stored size: 1.05 KB

Contents

module XcodeInstall
	class Command
		class Install < Command
			self.command = 'install'
			self.summary = 'Install a specific version of Xcode.'

			self.arguments = [
				CLAide::Argument.new('VERSION', :true),
			]

			def self.options
				[['--no-switch', 'Don’t switch to this version after installation'],
				 ['--no-clean', 'Don’t delete DMG after installation.']].concat(super)
			end

			def initialize(argv)
				@installer = Installer.new
				@version = argv.shift_argument
				@should_clean = argv.flag?('clean', true)
				@should_switch = argv.flag?('switch', true)
				super
			end

			def validate!
				raise Informative, "Version #{@version} already installed." if @installer.installed?(@version)
				raise Informative, "Version #{@version} doesn't exist." unless @installer.exist?(@version)
			end

			def run
				dmgPath = @installer.download(@version)
				raise Informative, "Failed to download Xcode #{@version}." if dmgPath.nil?

				@installer.install_dmg(dmgPath, "-#{@version.split(' ')[0]}", @should_switch, @should_clean)
			end
		end
	end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
xcode-install-0.1.1 lib/xcode/install/install.rb
xcode-install-0.1.0 lib/xcode/install/install.rb