cupertino 0.9.2 → 0.9.3
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/Gemfile.lock +1 -1
- data/lib/cupertino/provisioning_portal/agent.rb +15 -15
- data/lib/cupertino/provisioning_portal/commands/profiles.rb +3 -3
- data/lib/cupertino/provisioning_portal/commands.rb +1 -1
- data/lib/cupertino/provisioning_portal/helpers.rb +14 -20
- data/lib/cupertino/provisioning_portal.rb +8 -2
- data/lib/cupertino/version.rb +1 -1
- metadata +2 -3
- data/cupertino-0.9.1.gem +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a835eac9b4d42e3d9ebaae1b702d614842f63650
|
4
|
+
data.tar.gz: 8c2f2b34bec8fa87532955dda13c3022d0e32d0a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 61f5fc469464d8fe208d00e5ed38fadc4e8dfd12ea672de9a71b16c3e601ecc7be85082460184196d97a0851a0d17301b1a79765f624fbb4aed7f11264eec225
|
7
|
+
data.tar.gz: 93cba167d779afab989a6ae8bfdaadbcc0f054d7b106f422b07021c41f8bb02691592232ea4489bb8678bc04dcb81c46723bf551f46eccce40c775e7ebf66525
|
data/Gemfile.lock
CHANGED
@@ -7,17 +7,13 @@ require 'logger'
|
|
7
7
|
module Cupertino
|
8
8
|
module ProvisioningPortal
|
9
9
|
class Agent < ::Mechanize
|
10
|
-
attr_accessor :username, :password, :
|
11
|
-
|
12
|
-
# Maintain backward compatibility
|
13
|
-
alias_method :team, :team_id
|
14
|
-
alias_method :team=, :team_id=
|
10
|
+
attr_accessor :username, :password, :team
|
15
11
|
|
16
12
|
def initialize
|
17
13
|
super
|
18
14
|
|
19
15
|
self.user_agent_alias = 'Mac Safari'
|
20
|
-
|
16
|
+
|
21
17
|
self.log ||= Logger.new(STDOUT)
|
22
18
|
self.log.level = Logger::ERROR
|
23
19
|
|
@@ -119,8 +115,8 @@ module Cupertino
|
|
119
115
|
parsed_device_data['devices'].each do |row|
|
120
116
|
device = Device.new
|
121
117
|
device.name = row['name']
|
122
|
-
device.udid = row['deviceNumber'] # Apple doesn't provide the UDID on this page anymore
|
123
118
|
device.enabled = (row['status'] == 'c' ? 'Y' : 'N')
|
119
|
+
device.device_id = row['deviceId']
|
124
120
|
devices << device
|
125
121
|
end
|
126
122
|
|
@@ -202,6 +198,7 @@ module Cupertino
|
|
202
198
|
profile.edit_url = "https://developer.apple.com/account/ios/profile/profileEdit.action?provisioningProfileId=#{row['provisioningProfileId']}"
|
203
199
|
profiles << profile
|
204
200
|
end
|
201
|
+
|
205
202
|
profiles
|
206
203
|
end
|
207
204
|
|
@@ -217,17 +214,18 @@ module Cupertino
|
|
217
214
|
def manage_devices_for_profile(profile)
|
218
215
|
raise ArgumentError unless block_given?
|
219
216
|
|
220
|
-
|
217
|
+
devices = list_devices
|
221
218
|
|
222
|
-
|
219
|
+
begin
|
220
|
+
get(profile.edit_url)
|
221
|
+
rescue Mechanize::ResponseCodeError
|
222
|
+
say_error "Cannot manage devices for #{profile}" and abort
|
223
|
+
end
|
223
224
|
|
224
225
|
on, off = [], []
|
225
226
|
page.search('dd.selectDevices div.rows div').each do |row|
|
226
227
|
checkbox = row.search('input[type="checkbox"]').first
|
227
|
-
|
228
|
-
device = Device.new
|
229
|
-
device.name = row.search('span.title').text rescue nil
|
230
|
-
device.udid = checkbox['value'] rescue nil
|
228
|
+
device = devices.detect{|device| device.device_id == checkbox['value']}
|
231
229
|
|
232
230
|
if checkbox['checked']
|
233
231
|
on << device
|
@@ -240,14 +238,16 @@ module Cupertino
|
|
240
238
|
|
241
239
|
form = page.form_with(:name => 'profileEdit') or raise UnexpectedContentError
|
242
240
|
form.checkboxes_with(:name => 'deviceIds').each do |checkbox|
|
243
|
-
checkbox
|
244
|
-
if devices.detect{|device| device.udid == checkbox['value']}
|
241
|
+
if devices.detect{|device| device.device_id == checkbox['value']}
|
245
242
|
checkbox.check
|
246
243
|
else
|
247
244
|
checkbox.uncheck
|
248
245
|
end
|
249
246
|
end
|
250
247
|
|
248
|
+
adssuv = cookies.find{|cookie| cookie.name == 'adssuv'}
|
249
|
+
form.add_field!('adssuv-value', Mechanize::Util::uri_unescape(adssuv.value))
|
250
|
+
|
251
251
|
form.method = 'POST'
|
252
252
|
form.submit
|
253
253
|
end
|
@@ -101,8 +101,8 @@ command :'profiles:manage:devices' do |c|
|
|
101
101
|
|
102
102
|
agent.manage_devices_for_profile(profile) do |on, off|
|
103
103
|
lines = ["# Comment / Uncomment Devices to Turn Off / On for Provisioning Profile"]
|
104
|
-
lines += on.collect{|device| "#{device}"}
|
105
|
-
lines += off.collect{|device| "# #{device}"}
|
104
|
+
lines += on.collect{|device| "#{device.name} #{device.device_id}"}
|
105
|
+
lines += off.collect{|device| "# #{device.name} #{device.device_id}"}
|
106
106
|
(result = ask_editor lines.join("\n")) or abort("EDITOR undefined. Try run 'export EDITOR=vi'")
|
107
107
|
|
108
108
|
devices = []
|
@@ -110,7 +110,7 @@ command :'profiles:manage:devices' do |c|
|
|
110
110
|
next if /^#/ === line
|
111
111
|
components = line.split(/\s+/)
|
112
112
|
device = Device.new
|
113
|
-
device.
|
113
|
+
device.device_id = components.pop
|
114
114
|
device.name = components.join(" ")
|
115
115
|
devices << device
|
116
116
|
end
|
@@ -5,7 +5,7 @@ include Cupertino::ProvisioningPortal::Helpers
|
|
5
5
|
|
6
6
|
global_option('-u', '--username USER', 'Username') { |arg| agent.username = arg unless arg.nil? }
|
7
7
|
global_option('-p', '--password PASSWORD', 'Password') { |arg| agent.password = arg unless arg.nil? }
|
8
|
-
global_option('--team TEAM', 'Team') { |arg| agent.team = arg
|
8
|
+
global_option('--team TEAM', 'Team') { |arg| agent.team = arg if arg }
|
9
9
|
global_option('--info', 'Set log level to INFO') { agent.log.level = Logger::INFO }
|
10
10
|
global_option('--debug', 'Set log level to DEBUG') { agent.log.level = Logger::DEBUG }
|
11
11
|
|
@@ -24,29 +24,23 @@ module Cupertino
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def team_id
|
27
|
-
|
27
|
+
unless @team_id
|
28
|
+
teams = []
|
29
|
+
page.form_with(:name => 'saveTeamSelection').radiobuttons.each do |radio|
|
30
|
+
name = page.search(".label-primary[for=\"#{radio.dom_id}\"]").first.text.strip
|
31
|
+
programs = page.search(".label-secondary[for=\"#{radio.dom_id}\"]").first.text.strip.split(/\,\s+/)
|
32
|
+
team_id = radio.value
|
33
|
+
teams << Team.new(name, programs, radio.value)
|
34
|
+
end
|
28
35
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
team_id = radio.value
|
33
|
-
name = "#{primary}, #{secondary} (#{team_id})"
|
34
|
-
teams << [name, radio.value]
|
35
|
-
end
|
36
|
-
|
37
|
-
team_names = teams.collect(&:first)
|
38
|
-
team_ids = teams.collect(&:last)
|
36
|
+
unless team = teams.detect{|t| t.name == @team || t.identifier == @team}
|
37
|
+
team = choose "Select a team:", *teams
|
38
|
+
end
|
39
39
|
|
40
|
-
|
41
|
-
selected_team_name = choose "Select a team:", *team_names
|
42
|
-
teams.detect { |t| t.first == selected_team_name }.last
|
43
|
-
elsif team_ids.member? @team
|
44
|
-
@team
|
45
|
-
elsif team = teams.detect { |t| t.first.start_with?(@team) }
|
46
|
-
team.last
|
47
|
-
else
|
48
|
-
say_error "Team should be a name or identifier" and abort
|
40
|
+
@team_id = team.identifier
|
49
41
|
end
|
42
|
+
|
43
|
+
@team_id
|
50
44
|
end
|
51
45
|
end
|
52
46
|
end
|
@@ -8,7 +8,7 @@ module Cupertino
|
|
8
8
|
class UnsuccessfulAuthenticationError < RuntimeError; end
|
9
9
|
class UnexpectedContentError < RuntimeError; end
|
10
10
|
|
11
|
-
class Device < Struct.new(:name, :udid, :enabled)
|
11
|
+
class Device < Struct.new(:name, :udid, :enabled, :device_id)
|
12
12
|
def to_s
|
13
13
|
"#{self.name} #{self.udid} #{self.enabled}"
|
14
14
|
end
|
@@ -43,7 +43,13 @@ module Cupertino
|
|
43
43
|
"#{self.certificate_id}"
|
44
44
|
end
|
45
45
|
end
|
46
|
+
|
47
|
+
class Team < Struct.new(:name, :programs, :identifier)
|
48
|
+
def to_s
|
49
|
+
"#{self.name} (#{self.identifier})" + (" [#{self.programs.join(', ')}]" unless self.programs.empty?).to_s
|
50
|
+
end
|
51
|
+
end
|
46
52
|
end
|
47
53
|
end
|
48
54
|
|
49
|
-
require 'cupertino/provisioning_portal/agent'
|
55
|
+
require 'cupertino/provisioning_portal/agent'
|
data/lib/cupertino/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cupertino
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mattt Thompson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-11-
|
11
|
+
date: 2013-11-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: commander
|
@@ -157,7 +157,6 @@ executables:
|
|
157
157
|
extensions: []
|
158
158
|
extra_rdoc_files: []
|
159
159
|
files:
|
160
|
-
- ./cupertino-0.9.1.gem
|
161
160
|
- ./cupertino.gemspec
|
162
161
|
- ./Gemfile
|
163
162
|
- ./Gemfile.lock
|
data/cupertino-0.9.1.gem
DELETED
Binary file
|