package_cloud 0.2.5 → 0.2.6
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 +7 -0
- data/lib/package_cloud/cli/entry.rb +36 -2
- data/lib/package_cloud/client.rb +5 -0
- data/lib/package_cloud/repository.rb +56 -4
- data/lib/package_cloud/version.rb +1 -1
- metadata +5 -22
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 7e79efbf4dac6996cdcbb7f304c64689deb3a2f7
|
4
|
+
data.tar.gz: 87bad1bffe38bcaa287637ba3fdb34a88038ee8f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 76efe9383a2845066a36f8dc6190872d92a8655d952440423718a198a5c0dd84c6acd624f7bcade5333e4e8dcdb41326f9f49d1549b2916edb97b9937a3c8a04
|
7
|
+
data.tar.gz: 68bed2c251717c0f73c9ec19dd10736ef7a15d001f8e59c837cb3beb55a37c999cdffd8b286d3abd1b34d6ef164b4e6783a82e7095e9b98f6bf0d44a608192c4
|
@@ -47,7 +47,7 @@ module PackageCloud
|
|
47
47
|
end
|
48
48
|
|
49
49
|
invalid_packages = package_files.select do |f|
|
50
|
-
!["gem", "deb", "rpm"].include?(f.split(".").last)
|
50
|
+
!["gem", "deb", "rpm", "dsc"].include?(f.split(".").last)
|
51
51
|
end
|
52
52
|
|
53
53
|
if !options.has_key?("skip-file-ext-validation") && invalid_packages.any?
|
@@ -78,9 +78,18 @@ module PackageCloud
|
|
78
78
|
print "Looking for repository at #{repo}... "
|
79
79
|
repo = client.repository(repo)
|
80
80
|
print "success!\n"
|
81
|
+
|
81
82
|
package_files.each do |f|
|
83
|
+
files = nil
|
84
|
+
ext = f.split(".").last
|
85
|
+
|
86
|
+
if ext == "dsc"
|
87
|
+
print "Checking source package #{f}... "
|
88
|
+
files = parse_and_verify_dsc(repo, f, dist_id)
|
89
|
+
end
|
90
|
+
|
82
91
|
print "Pushing #{f}... "
|
83
|
-
repo.create_package(f, dist_id)
|
92
|
+
repo.create_package(f, dist_id, files, ext)
|
84
93
|
end
|
85
94
|
end
|
86
95
|
|
@@ -91,6 +100,31 @@ module PackageCloud
|
|
91
100
|
end
|
92
101
|
|
93
102
|
private
|
103
|
+
def parse_and_verify_dsc(repo, f, dist_id)
|
104
|
+
files = repo.parse_dsc(f, dist_id)
|
105
|
+
dirname = File.dirname(f)
|
106
|
+
find_and_verify(dirname, files)
|
107
|
+
end
|
108
|
+
|
109
|
+
def find_and_verify(dir, files)
|
110
|
+
file_paths = []
|
111
|
+
files.each do |f|
|
112
|
+
filepath = File.join(dir, f["filename"])
|
113
|
+
if !File.exists?(filepath)
|
114
|
+
print "Unable to find file name: #{f["filename"]} for source package: #{filepath}\n".red
|
115
|
+
abort("Aborting...".red)
|
116
|
+
end
|
117
|
+
|
118
|
+
disk_size = File.stat(filepath).size
|
119
|
+
if disk_size != f["size"]
|
120
|
+
print "File #{f["filename"]} has size: #{disk_size}, expected: #{f["size"]}\n".red
|
121
|
+
abort("Aborting...".red)
|
122
|
+
end
|
123
|
+
file_paths << filepath
|
124
|
+
end
|
125
|
+
file_paths
|
126
|
+
end
|
127
|
+
|
94
128
|
def get_valid(prompt)
|
95
129
|
selection = ""
|
96
130
|
times = 0
|
data/lib/package_cloud/client.rb
CHANGED
@@ -23,6 +23,11 @@ module PackageCloud
|
|
23
23
|
user, repo = name.split("/")
|
24
24
|
begin
|
25
25
|
attrs = JSON.parse(RestClient.get("#{base_url}/api/v1/repos/#{user}/#{repo}.json"))
|
26
|
+
if attrs["error"] == "not_found"
|
27
|
+
print "failed... Repository #{user}/#{repo} not found!\n".red
|
28
|
+
exit(127)
|
29
|
+
end
|
30
|
+
|
26
31
|
Repository.new(attrs, @config)
|
27
32
|
rescue RestClient::ResourceNotFound => e
|
28
33
|
print "failed!\n".red
|
@@ -5,13 +5,65 @@ module PackageCloud
|
|
5
5
|
@config = config
|
6
6
|
end
|
7
7
|
|
8
|
-
def
|
8
|
+
def parse_dsc(dsc_path, dist_id)
|
9
|
+
file_data = File.new(dsc_path, 'rb')
|
10
|
+
base_url = @config.base_url
|
11
|
+
url = base_url + paths["package_contents"]
|
12
|
+
begin
|
13
|
+
resp = RestClient.post(url, :package => {:package_file => file_data,
|
14
|
+
:distro_version_id => dist_id})
|
15
|
+
resp = JSON.parse(resp)
|
16
|
+
print "success!\n"
|
17
|
+
resp["files"]
|
18
|
+
rescue RestClient::UnprocessableEntity => e
|
19
|
+
print "error:\n".red
|
20
|
+
json = JSON.parse(e.response)
|
21
|
+
json.each do |k,v|
|
22
|
+
puts "\n\t#{k}: #{v.join(", ")}\n"
|
23
|
+
end
|
24
|
+
puts ""
|
25
|
+
exit(1)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def create_dsc(dsc, files, dist_id)
|
30
|
+
file_data = File.new(dsc, 'rb')
|
31
|
+
base_url = @config.base_url
|
32
|
+
url = base_url + paths["create_package"]
|
33
|
+
begin
|
34
|
+
resp = RestClient.post(url, :package => {:package_file => file_data,
|
35
|
+
:source_files => file_ios,
|
36
|
+
:distro_version_id => dist_id})
|
37
|
+
files = JSON.parse(resp)
|
38
|
+
print "success!\n".green
|
39
|
+
files
|
40
|
+
rescue RestClient::UnprocessableEntity => e
|
41
|
+
print "error:\n".red
|
42
|
+
json = JSON.parse(e.response)
|
43
|
+
json.each do |k,v|
|
44
|
+
puts "\n\t#{k}: #{v.join(", ")}\n"
|
45
|
+
end
|
46
|
+
puts ""
|
47
|
+
exit(1)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def create_package(file_path, dist_id, files=nil, filetype=nil)
|
9
52
|
file_data = File.new(file_path, 'rb')
|
10
|
-
base_url = @config.base_url
|
53
|
+
base_url = @config.base_url
|
11
54
|
url = base_url + paths["create_package"]
|
55
|
+
params = { :package_file => file_data,
|
56
|
+
:distro_version_id => dist_id }
|
57
|
+
|
58
|
+
if filetype == "dsc"
|
59
|
+
file_ios = files.inject([]) do |memo, f|
|
60
|
+
memo << File.new(f, 'rb')
|
61
|
+
end
|
62
|
+
params.merge!({:source_files => file_ios})
|
63
|
+
end
|
64
|
+
|
12
65
|
begin
|
13
|
-
RestClient.post(url, :package =>
|
14
|
-
:distro_version_id => dist_id})
|
66
|
+
RestClient.post(url, :package => params)
|
15
67
|
print "success!\n".green
|
16
68
|
rescue RestClient::UnprocessableEntity => e
|
17
69
|
print "error:\n".red
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: package_cloud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
5
|
-
prerelease:
|
4
|
+
version: 0.2.6
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- James Golick
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2014-06-
|
11
|
+
date: 2014-06-26 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: thor
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - '='
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - '='
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: highline
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - '='
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - '='
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rest-client
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - '='
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - '='
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: json
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - '='
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - '='
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,7 +69,6 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: colorize
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - '='
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - '='
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -94,7 +83,6 @@ dependencies:
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: bundler
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
87
|
- - "~>"
|
100
88
|
- !ruby/object:Gem::Version
|
@@ -102,7 +90,6 @@ dependencies:
|
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
94
|
- - "~>"
|
108
95
|
- !ruby/object:Gem::Version
|
@@ -110,7 +97,6 @@ dependencies:
|
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: rake
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
101
|
- - ">="
|
116
102
|
- !ruby/object:Gem::Version
|
@@ -118,7 +104,6 @@ dependencies:
|
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
108
|
- - ">="
|
124
109
|
- !ruby/object:Gem::Version
|
@@ -156,27 +141,25 @@ files:
|
|
156
141
|
homepage: https://packagecloud.io
|
157
142
|
licenses:
|
158
143
|
- MIT
|
144
|
+
metadata: {}
|
159
145
|
post_install_message:
|
160
146
|
rdoc_options: []
|
161
147
|
require_paths:
|
162
148
|
- lib
|
163
149
|
required_ruby_version: !ruby/object:Gem::Requirement
|
164
|
-
none: false
|
165
150
|
requirements:
|
166
151
|
- - ">="
|
167
152
|
- !ruby/object:Gem::Version
|
168
153
|
version: '0'
|
169
154
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
170
|
-
none: false
|
171
155
|
requirements:
|
172
156
|
- - ">="
|
173
157
|
- !ruby/object:Gem::Version
|
174
158
|
version: '0'
|
175
159
|
requirements: []
|
176
160
|
rubyforge_project:
|
177
|
-
rubygems_version:
|
161
|
+
rubygems_version: 2.2.0
|
178
162
|
signing_key:
|
179
|
-
specification_version:
|
163
|
+
specification_version: 4
|
180
164
|
summary: https://packagecloud.io
|
181
165
|
test_files: []
|
182
|
-
has_rdoc:
|