package_cloud 0.3.07 → 0.3.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: f9a2b9a23675e7111f4d7a5bdae131bfa6ca037c
4
- data.tar.gz: 2064cb76dfb3155849b76cabc3f2d4cd7b1720cc
2
+ SHA256:
3
+ metadata.gz: 742e3bad6322b16c1174addee4ee290a0eb880bc3f1150deb5367a0733c49a33
4
+ data.tar.gz: e3aae0a0e065b9880548d035a835a26eba3b46827a5ac6f579ac5cdc160a4364
5
5
  SHA512:
6
- metadata.gz: 03b0aeb185803c8399b770ef758a357c3eb3bf181ca6ed1e841206afdff72dbfcd1f34e8a5dcae13db6083b301425887148f8e0279ac6a28a42ec0fd4ef88596
7
- data.tar.gz: c55d5fd8caf861fe2901bf137480e0f3603fea7d17c7d61400f56985379d47ec88cbdefa05a65e95b788b6d95f489458bc5a93fb0e7c404750ec707affee3267
6
+ metadata.gz: 4a3e4cbea1c841372a448cbb87947449410d2b5bbba384239ed14d006b8ee39c055e58003db21a23024607c6703eeb473631c2766021b2899976e0d3aa21297a
7
+ data.tar.gz: f694739c61f3a63f1c84abb45246c7ae638a3affbb01868c3bb4e2c1aa1a95203e2178ef9d355b78cf38243bc19f014c460f377afbc3352778800e8e7d5bffcf
data/README.md CHANGED
@@ -164,6 +164,24 @@ repository owned by `example-user` as a RubyGem package.
164
164
  Note that unlike all other package types, RubyGems do not require any
165
165
  additional specification on upload.
166
166
 
167
+ #### Uploading a arbitrary file
168
+
169
+ NOTE:
170
+
171
+ Currently supported files:
172
+
173
+ * .asc (armored ascii signature file)
174
+
175
+ You can upload a Anyfile package found at the path `/tmp/example.asc` by
176
+ running:
177
+
178
+ ```
179
+ package_cloud push example-user/example-repository/anyfile /tmp/example.asc
180
+ ```
181
+
182
+ This command will upload `/tmp/example.asc` to the `example-repository`
183
+ repository owned by `example-user` as an Anyfile package.
184
+
167
185
  #### Uploading a Python package
168
186
 
169
187
  You can upload a Python package found at the path `/tmp/example.whl` by
@@ -2,8 +2,10 @@ module PackageCloud
2
2
  module CLI
3
3
  JAVA_EXTS = ["jar", "aar", "war"]
4
4
  PY_EXTS = ["gz", "bz2", "z", "tar", "egg-info", "zip", "whl", "egg"]
5
- NODE_EXTS = ["tgz"]
6
- SUPPORTED_EXTS = JAVA_EXTS + PY_EXTS + NODE_EXTS + ["gem", "deb", "rpm", "dsc", "apk"]
5
+ ANYFILE_EXTS = ["asc"]
6
+ NODE_EXTS = []
7
+ AMBIGUOUS_EXTS = ["tgz", "apk"]
8
+ SUPPORTED_EXTS = JAVA_EXTS + PY_EXTS + ANYFILE_EXTS + AMBIGUOUS_EXTS + ["gem", "deb", "rpm", "dsc"]
7
9
 
8
10
  class Entry < Base
9
11
  desc "repository SUBCMD ...ARGS", "manage repositories"
@@ -105,12 +107,13 @@ module PackageCloud
105
107
  :desc => "Specify the exact maven coordinates to use for a JAR. Useful for JARs without coordinates, 'fat JARs', and WARs."
106
108
 
107
109
  def push(repo, package_file, *package_files)
110
+ puts "################### push- repo: #{repo.inspect}"
108
111
  total_time = Benchmark.measure do
109
112
  ARGV.clear # otherwise gets explodes
110
113
  package_files << package_file
111
114
 
112
115
  exts = package_files.map { |f| f.split(".").last }.uniq
113
- exts = handle_special_exts(repo, exts)
116
+ #### exts = handle_special_exts(repo, exts)
114
117
 
115
118
  if package_files.length > 1 && exts.length > 1
116
119
  abort("You can't push multiple packages of different types at the same time.\nFor example, use *.deb to push all your debs at once.".color(:red))
@@ -129,7 +132,8 @@ module PackageCloud
129
132
  invalid_packages.each do |p|
130
133
  message << " #{p}\n"
131
134
  end
132
- message << "\npackage_cloud only supports node.js, deb, gem, java, python, or rpm packages".color(:red)
135
+ message << "\npackage_cloud only supports node.js, deb, gem, java, python, "\
136
+ "rpm, alpine, helm, anyfile (.zip, .asc) packages".color(:red)
133
137
  abort(message)
134
138
  end
135
139
 
@@ -146,11 +150,15 @@ module PackageCloud
146
150
  validator = Validator.new(client)
147
151
  if PY_EXTS.include?(exts.first.downcase)
148
152
  dist_id = validator.distribution_id(repo, package_files, 'py')
153
+ elsif ANYFILE_EXTS.include?(exts.first.downcase)
154
+ dist_id = validator.distribution_id(repo, package_files, 'anyfile')
149
155
  elsif NODE_EXTS.include?(exts.first.downcase)
150
156
  dist_id = validator.distribution_id(repo, package_files, 'node')
151
157
  elsif JAVA_EXTS.include?(exts.first.downcase)
152
158
  abort_if_snapshot!(package_files)
153
159
  dist_id = validator.distribution_id(repo, package_files, 'jar')
160
+ elsif AMBIGUOUS_EXTS.include?(exts.first.downcase)
161
+ dist_id = validator.distribution_id_from_url(repo, package_files)
154
162
  else
155
163
  dist_id = validator.distribution_id(repo, package_files, exts.first)
156
164
  end
@@ -196,16 +204,16 @@ module PackageCloud
196
204
  end
197
205
 
198
206
  private
199
- def handle_special_exts(repo, exts)
200
- exts.map do |elem|
201
- case elem
202
- when 'apk'
203
- elem = repo.include?("alpine") ? "alpine" : elem
204
- else
205
- elem
206
- end
207
- end
208
- end
207
+ #### def handle_special_exts(repo, exts)
208
+ #### exts.map do |elem|
209
+ #### case elem
210
+ #### when 'apk'
211
+ #### elem = repo.include?("alpine") ? "alpine" : elem
212
+ #### else
213
+ #### elem
214
+ #### end
215
+ #### end
216
+ #### end
209
217
 
210
218
  def expand_dist_shortcut(dist)
211
219
  case dist
@@ -213,6 +221,8 @@ module PackageCloud
213
221
  'java/maven2'
214
222
  when 'python'
215
223
  'python/1'
224
+ when 'anyfile'
225
+ 'anyfile/1'
216
226
  when 'node'
217
227
  'node/1'
218
228
  else
@@ -4,12 +4,19 @@ module PackageCloud
4
4
  @client = client
5
5
  end
6
6
 
7
+ def distribution_id_from_url(repo, filenames)
8
+ _,_,dist_sel,ver_sel = repo.split("/")
9
+ package_type = dist_sel
10
+ puts "ambiguous extensions, so using repo url to deduce package_type, package_type: #{package_type}"
11
+ distribution_id(repo, filenames, package_type)
12
+ end
13
+
7
14
  def distribution_id(repo, filenames, package_type)
8
15
  if distributions[package_type]
9
16
  _,_,dist_sel,ver_sel = repo.split("/")
10
17
 
11
18
  # These are all 'single version' distros
12
- if (dist_sel == "python" || dist_sel == "java" || dist_sel == "node")
19
+ if (dist_sel == "python" || dist_sel == "java" || dist_sel == "node" || dist_sel == "anyfile")
13
20
  dist = distributions[package_type].detect { |d| d["index_name"] == dist_sel }
14
21
  dist["versions"].first["id"]
15
22
  elsif dist_sel && ver_sel
@@ -1,7 +1,7 @@
1
1
  module PackageCloud
2
2
  MAJOR_VERSION = "0"
3
3
  MINOR_VERSION = "3"
4
- PATCH_VERSION = "07"
4
+ PATCH_VERSION = "10"
5
5
 
6
6
  VERSION = [MAJOR_VERSION, MINOR_VERSION, PATCH_VERSION].join(".")
7
7
  end
@@ -19,10 +19,10 @@ Gem::Specification.new do |spec|
19
19
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
20
  spec.require_paths = ["lib"]
21
21
 
22
- spec.add_runtime_dependency "thor", "~> 0.18"
23
- spec.add_runtime_dependency "highline", "1.6.20"
22
+ spec.add_runtime_dependency "thor", "~> 1.2"
23
+ spec.add_runtime_dependency "highline", "~> 2.0.0"
24
24
  spec.add_runtime_dependency "rest-client", "~> 2.0"
25
- spec.add_runtime_dependency "json_pure", "1.8.1"
25
+ spec.add_runtime_dependency "json_pure", "~> 2.3.0"
26
26
  spec.add_runtime_dependency "rainbow", "2.2.2"
27
27
 
28
28
  spec.add_development_dependency "bundler", "~> 1.3"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: package_cloud
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.07
4
+ version: 0.3.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joe Damato
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-19 00:00:00.000000000 Z
11
+ date: 2022-09-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.18'
19
+ version: '1.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.18'
26
+ version: '1.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: highline
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '='
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.6.20
33
+ version: 2.0.0
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: 1.6.20
40
+ version: 2.0.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rest-client
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -56,16 +56,16 @@ dependencies:
56
56
  name: json_pure
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '='
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.8.1
61
+ version: 2.3.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '='
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 1.8.1
68
+ version: 2.3.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rainbow
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -163,7 +163,7 @@ homepage: https://packagecloud.io
163
163
  licenses:
164
164
  - MIT
165
165
  metadata: {}
166
- post_install_message:
166
+ post_install_message:
167
167
  rdoc_options: []
168
168
  require_paths:
169
169
  - lib
@@ -178,9 +178,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
178
178
  - !ruby/object:Gem::Version
179
179
  version: '0'
180
180
  requirements: []
181
- rubyforge_project:
182
- rubygems_version: 2.5.2.3
183
- signing_key:
181
+ rubygems_version: 3.2.3
182
+ signing_key:
184
183
  specification_version: 4
185
184
  summary: The https://packagecloud.io CLI for uploading Node.js, Debian, RPM, RubyGem,
186
185
  Python, and Java packages. Check our website or the RubyDoc documentation for detailed