xcode-install 0.9.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +4 -1
- data/lib/xcode/install.rb +12 -8
- data/lib/xcode/install/command.rb +1 -1
- data/lib/xcode/install/install.rb +3 -1
- data/lib/xcode/install/version.rb +1 -1
- data/spec/install_spec.rb +8 -2
- data/xcode-install.gemspec +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ff9a825792c85a007a8c6436cdf95d80218039b5
|
4
|
+
data.tar.gz: 3d908af8cb1cfd488e598097ab1e4855f430a044
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 21bde96d3a74753b3da4cda7a734098910c9c376de969e00b436ea01deb32d294005aa43cdbd983bfc9d1787e85222afd128a4602736a58431f9024f684074ed
|
7
|
+
data.tar.gz: 8a94316af2ec67a3a696805d2f1a9885c13795d84426eb10a4b410b590fbe573454683283cad6093b5c8c1c569c5b8d8e3299b14e5e7a6d3c3eb344c2b2d3b74
|
data/README.md
CHANGED
@@ -70,7 +70,8 @@ versions on unindexed volumes.
|
|
70
70
|
## Thanks
|
71
71
|
|
72
72
|
[This][3] downloading script which has been used for some inspiration, also [this][4]
|
73
|
-
for doing the installation.
|
73
|
+
for doing the installation. Additionally, many thanks to everyone who has contributed to this
|
74
|
+
project, especially [@henrikhodne][6] and [@lacostej][7] for making XcodeInstall C extension free.
|
74
75
|
|
75
76
|
## Contributing
|
76
77
|
|
@@ -86,3 +87,5 @@ for doing the installation.
|
|
86
87
|
[3]: http://atastypixel.com/blog/resuming-adc-downloads-cos-safari-sucks/
|
87
88
|
[4]: https://github.com/magneticbear/Jenkins_Bootstrap
|
88
89
|
[5]: http://www.openradar.me/22001810
|
90
|
+
[6]: https://github.com/henrikhodne
|
91
|
+
[7]: https://github.com/lacostej
|
data/lib/xcode/install.rb
CHANGED
@@ -9,7 +9,7 @@ module XcodeInstall
|
|
9
9
|
class Curl
|
10
10
|
COOKIES_PATH = Pathname.new('/tmp/curl-cookies.txt')
|
11
11
|
|
12
|
-
def fetch(url, directory = nil, cookies = nil, output = nil)
|
12
|
+
def fetch(url, directory = nil, cookies = nil, output = nil, progress = true)
|
13
13
|
options = cookies.nil? ? '' : "-b '#{cookies}' -c #{COOKIES_PATH}"
|
14
14
|
# options += ' -vvv'
|
15
15
|
|
@@ -17,7 +17,8 @@ module XcodeInstall
|
|
17
17
|
output ||= File.basename(uri.path)
|
18
18
|
output = (Pathname.new(directory) + Pathname.new(output)) if directory
|
19
19
|
|
20
|
-
|
20
|
+
progress = progress ? '-#' : '-s'
|
21
|
+
command = "curl #{options} -L -C - #{progress} -o #{output} #{url}"
|
21
22
|
IO.popen(command).each do |fd|
|
22
23
|
puts(fd)
|
23
24
|
end
|
@@ -43,12 +44,12 @@ module XcodeInstall
|
|
43
44
|
File.symlink?(SYMLINK_PATH) ? SYMLINK_PATH : nil
|
44
45
|
end
|
45
46
|
|
46
|
-
def download(version)
|
47
|
+
def download(version, progress)
|
47
48
|
return unless exist?(version)
|
48
49
|
xcode = seedlist.find { |x| x.name == version }
|
49
50
|
dmg_file = Pathname.new(File.basename(xcode.path))
|
50
51
|
|
51
|
-
result = Curl.new.fetch(xcode.url, CACHE_DIR, spaceship.cookie, dmg_file)
|
52
|
+
result = Curl.new.fetch(xcode.url, CACHE_DIR, spaceship.cookie, dmg_file, progress)
|
52
53
|
result ? CACHE_DIR + dmg_file : nil
|
53
54
|
end
|
54
55
|
|
@@ -104,9 +105,9 @@ HELP
|
|
104
105
|
FileUtils.rm_f(dmgPath) if clean
|
105
106
|
end
|
106
107
|
|
107
|
-
def install_version(version, switch = true, clean = true, install = true)
|
108
|
+
def install_version(version, switch = true, clean = true, install = true, progress = true)
|
108
109
|
return if version.nil?
|
109
|
-
dmg_path = get_dmg(version)
|
110
|
+
dmg_path = get_dmg(version, progress)
|
110
111
|
fail Informative, "Failed to download Xcode #{version}." if dmg_path.nil?
|
111
112
|
|
112
113
|
install_dmg(dmg_path, "-#{version.split(' ')[0]}", switch, clean) if install
|
@@ -143,6 +144,9 @@ HELP
|
|
143
144
|
begin
|
144
145
|
Spaceship.login(ENV["XCODE_INSTALL_USER"], ENV["XCODE_INSTALL_PASSWORD"])
|
145
146
|
rescue Spaceship::Client::InvalidUserCredentialsError
|
147
|
+
$stderr.puts 'The specified Apple developer account credentials are incorrect.'
|
148
|
+
exit(1)
|
149
|
+
rescue Spaceship::Client::NoUserCredentialsError
|
146
150
|
$stderr.puts <<-HELP
|
147
151
|
Please provide your Apple developer account credentials via the
|
148
152
|
XCODE_INSTALL_USER and XCODE_INSTALL_PASSWORD environment variables.
|
@@ -167,13 +171,13 @@ HELP
|
|
167
171
|
`sudo /usr/sbin/dseditgroup -o edit -t group -a staff _developer`
|
168
172
|
end
|
169
173
|
|
170
|
-
def get_dmg(version)
|
174
|
+
def get_dmg(version, progress = true)
|
171
175
|
if ENV.key?('XCODE_INSTALL_CACHE_DIR')
|
172
176
|
cache_path = Pathname.new(ENV['XCODE_INSTALL_CACHE_DIR']) + Pathname.new("xcode-#{version}.dmg")
|
173
177
|
return cache_path if cache_path.exist?
|
174
178
|
end
|
175
179
|
|
176
|
-
download(version)
|
180
|
+
download(version, progress)
|
177
181
|
end
|
178
182
|
|
179
183
|
def fetch_seedlist
|
@@ -11,6 +11,7 @@ module XcodeInstall
|
|
11
11
|
def self.options
|
12
12
|
[['--no-switch', 'Don’t switch to this version after installation'],
|
13
13
|
['--no-install', 'Only download DMG, but do not install it.'],
|
14
|
+
['--no-progress', 'Don’t show download progress.'],
|
14
15
|
['--no-clean', 'Don’t delete DMG after installation.']].concat(super)
|
15
16
|
end
|
16
17
|
|
@@ -20,6 +21,7 @@ module XcodeInstall
|
|
20
21
|
@should_clean = argv.flag?('clean', true)
|
21
22
|
@should_install = argv.flag?('install', true)
|
22
23
|
@should_switch = argv.flag?('switch', true)
|
24
|
+
@progress = argv.flag?('progress', true)
|
23
25
|
super
|
24
26
|
end
|
25
27
|
|
@@ -33,7 +35,7 @@ module XcodeInstall
|
|
33
35
|
|
34
36
|
def run
|
35
37
|
return if @version.nil?
|
36
|
-
@installer.install_version(@version, @should_switch, @should_clean, @should_install)
|
38
|
+
@installer.install_version(@version, @should_switch, @should_clean, @should_install, @progress)
|
37
39
|
end
|
38
40
|
end
|
39
41
|
end
|
data/spec/install_spec.rb
CHANGED
@@ -11,15 +11,21 @@ module XcodeInstall
|
|
11
11
|
end
|
12
12
|
|
13
13
|
it 'downloads and installs' do
|
14
|
-
Installer.any_instance.expects(:download).with('6.3').returns('/some/path')
|
14
|
+
Installer.any_instance.expects(:download).with('6.3', true).returns('/some/path')
|
15
15
|
Installer.any_instance.expects(:install_dmg).with('/some/path', '-6.3', true, true)
|
16
16
|
Command::Install.run(['6.3'])
|
17
17
|
end
|
18
18
|
|
19
19
|
it 'downloads and installs and does not switch if --no-switch given' do
|
20
|
-
Installer.any_instance.expects(:download).with('6.3').returns('/some/path')
|
20
|
+
Installer.any_instance.expects(:download).with('6.3', true).returns('/some/path')
|
21
21
|
Installer.any_instance.expects(:install_dmg).with('/some/path', '-6.3', false, true)
|
22
22
|
Command::Install.run(['6.3', '--no-switch'])
|
23
23
|
end
|
24
|
+
|
25
|
+
it 'downloads without progress if switch --no-progress is given' do
|
26
|
+
Installer.any_instance.expects(:download).with('6.3', false).returns('/some/path')
|
27
|
+
Installer.any_instance.expects(:install_dmg).with('/some/path', '-6.3', true, true)
|
28
|
+
Command::Install.run(['6.3', '--no-progress'])
|
29
|
+
end
|
24
30
|
end
|
25
31
|
end
|
data/xcode-install.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
21
|
spec.add_dependency 'claide', '~> 0.8.1'
|
22
|
-
spec.add_dependency 'spaceship', '~> 0.3.
|
22
|
+
spec.add_dependency 'spaceship', '~> 0.3.3'
|
23
23
|
|
24
24
|
spec.add_development_dependency 'bundler', '~> 1.7'
|
25
25
|
spec.add_development_dependency 'rake', '~> 10.0'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xcode-install
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Boris Bügling
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-07-
|
11
|
+
date: 2015-07-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: claide
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.3.
|
33
|
+
version: 0.3.3
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.3.
|
40
|
+
version: 0.3.3
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|