Class: FastlaneCore::TransporterExecutor
- Inherits:
-
Object
- Object
- FastlaneCore::TransporterExecutor
show all
- Defined in:
- fastlane_core/lib/fastlane_core/itunes_transporter.rb
Overview
Base class for executing the iTMSTransporter
Constant Summary
collapse
- ITMS_PROVIDER_REGEX =
Matches a line in the iTMSTransporter provider table: “12 Initech Systems Inc LG89CQY559”
/^\d+\s{2,}.+\s{2,}[^\s]+$/
Instance Method Summary
collapse
-
#build_download_command(username, password, apple_id, destination = "/tmp", provider_short_name = "", jwt = nil) ⇒ Object
-
#build_provider_ids_command(username, password, jwt = nil, api_key = nil) ⇒ Object
-
#build_upload_command(username, password, source = "/tmp", provider_short_name = "", jwt = nil, platform = nil, api_key = nil) ⇒ Object
-
#build_verify_command(username, password, source = "/tmp", provider_short_name = "", **kwargs) ⇒ Object
-
#displayable_errors ⇒ Object
-
#execute(command, hide_output) {|@all_lines| ... } ⇒ Object
-
#parse_provider_info(lines) ⇒ Object
Instance Method Details
#build_download_command(username, password, apple_id, destination = "/tmp", provider_short_name = "", jwt = nil) ⇒ Object
38
39
40
|
# File 'fastlane_core/lib/fastlane_core/itunes_transporter.rb', line 38
def build_download_command(username, password, apple_id, destination = "/tmp", provider_short_name = "", jwt = nil)
not_implemented(__method__)
end
|
#build_provider_ids_command(username, password, jwt = nil, api_key = nil) ⇒ Object
42
43
44
|
# File 'fastlane_core/lib/fastlane_core/itunes_transporter.rb', line 42
def build_provider_ids_command(username, password, jwt = nil, api_key = nil)
not_implemented(__method__)
end
|
#build_upload_command(username, password, source = "/tmp", provider_short_name = "", jwt = nil, platform = nil, api_key = nil) ⇒ Object
46
47
48
|
# File 'fastlane_core/lib/fastlane_core/itunes_transporter.rb', line 46
def build_upload_command(username, password, source = "/tmp", provider_short_name = "", jwt = nil, platform = nil, api_key = nil)
not_implemented(__method__)
end
|
#build_verify_command(username, password, source = "/tmp", provider_short_name = "", **kwargs) ⇒ Object
50
51
52
|
# File 'fastlane_core/lib/fastlane_core/itunes_transporter.rb', line 50
def build_verify_command(username, password, source = "/tmp", provider_short_name = "", **kwargs)
not_implemented(__method__)
end
|
#displayable_errors ⇒ Object
118
119
120
|
# File 'fastlane_core/lib/fastlane_core/itunes_transporter.rb', line 118
def displayable_errors
@errors.map { |error| "[Transporter Error Output]: #{error}" }.join("\n").gsub!(/"/, "")
end
|
#execute(command, hide_output) {|@all_lines| ... } ⇒ Object
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
# File 'fastlane_core/lib/fastlane_core/itunes_transporter.rb', line 54
def execute(command, hide_output)
if Helper.test?
yield(nil) if block_given?
return command
end
@errors = []
@warnings = []
@all_lines = []
if hide_output
UI.success("Waiting for App Store Connect transporter to be finished.")
UI.success("iTunes Transporter progress... this might take a few minutes...")
end
begin
exit_status = FastlaneCore::FastlanePty.spawn(command) do |command_stdout, command_stdin, pid|
begin
command_stdout.each do |line|
@all_lines << line
parse_line(line, hide_output) end
end
end
rescue => ex
exit_status = ex.exit_status
@errors << ex.to_s
end
unless exit_status.zero?
@errors << "The call to the iTMSTransporter completed with a non-zero exit status: #{exit_status}. This indicates a failure."
end
if @warnings.count > 0
UI.important(@warnings.join("\n"))
end
if @errors.join("").include?("app-specific")
raise TransporterRequiresApplicationSpecificPasswordError
end
if @errors.count > 0 && @all_lines.count > 0
@all_lines.last(15).each do |line|
UI.important("[iTMSTransporter] #{line}")
end
UI.message("iTunes Transporter output above ^")
UI.error(@errors.join("\n"))
end
if @errors.count > 0 && exit_status.zero?
UI.important("Although errors occurred during execution of iTMSTransporter, it returned success status.")
end
yield(@all_lines) if block_given?
return exit_status.zero?
end
|
#parse_provider_info(lines) ⇒ Object
122
123
124
|
# File 'fastlane_core/lib/fastlane_core/itunes_transporter.rb', line 122
def parse_provider_info(lines)
lines.map { |line| itms_provider_pair(line) }.compact.to_h
end
|