| 1096 | end |
| 1097 | |
| 1098 | def release |
| 1099 | progress_label = "Releasing: #{release_base_path}" |
| 1100 | progress_reporter = ProgressReporter.new(progress_label) |
| 1101 | rc_prefix = [rc_base_path, @rc_prefix].compact.join("/") |
| 1102 | release_prefix = [release_base_path, @release_prefix].compact.join("/") |
| 1103 | ArtifactoryClientPool.open(rc_prefix, @api_key) do |client_pool| |
| 1104 | thread_pool = ThreadPool.new(:artifactory) do |path, release_path| |
| 1105 | client_pool.pull do |client| |
| 1106 | client.copy(path, release_path) |
| 1107 | end |
| 1108 | progress_reporter.advance |
| 1109 | end |
| 1110 | files = client_pool.pull do |client| |
| 1111 | if @list |
| 1112 | client.download(@list, nil).lines(chomp: true) |
| 1113 | else |
| 1114 | client.files |
| 1115 | end |
| 1116 | end |
| 1117 | files.each do |path| |
| 1118 | progress_reporter.increment_max |
| 1119 | rc_path = "#{rc_prefix}/#{path}" |
| 1120 | release_path = "#{release_prefix}/#{path}" |
| 1121 | thread_pool << [rc_path, release_path] |
| 1122 | end |
| 1123 | thread_pool.join |
| 1124 | end |
| 1125 | progress_reporter.finish |
| 1126 | end |
| 1127 | end |
| 1128 | |
| 1129 | def define |