prm 0.2.9 → 0.2.10

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c087bcdb19f4bf6f49ed7d42da7362b89ab578e1
4
+ data.tar.gz: f41c8d28b05461271389139c5d0a24740a780131
5
+ SHA512:
6
+ metadata.gz: 35ac22da34aba114bdd281e33188a011021e6f6197e9b02e7855480c2b27c4a68a7d565946371f15a5ff4ba54632c3d48add6f43c98ab503cbfbcabb13a8e2c6
7
+ data.tar.gz: 4e1671cebb3980d553e7cb0e812c8f1e8e6ddfa50650632253bb3569626eb10d7fa63a7fadede73385681e7a56e8e317413340b26a493ab1aae5602016ba6da8
data/bin/prm CHANGED
@@ -16,6 +16,8 @@ class Main < Clamp::Command
16
16
  option ["-r", "--release"], "RELEASE", "OS version to create", :required => true
17
17
  option ["-a", "--arch"], "ARCH", "Architecture of repo contents", :required => true
18
18
  option ["-c", "--component"], "COMPONENT", "Component to create [DEB ONLY]"
19
+ option ["-l", "--label"], "LABEL", "Label for generated repository [DEB ONLY]"
20
+ option ["-o", "--origin"], "ORIGIN", "Origin for generated repository [DEB ONLY]"
19
21
  option ["--nocache"], :flag, "Don't cache md5 sums [DEB ONLY]"
20
22
  option ["--accesskey"], "ACCESS KEY", "DHO/S3 Access Key", :default => false
21
23
  option ["--secretkey"], "SECRET KEY", "DHO/S3 Secret Key", :default => false
@@ -42,6 +44,8 @@ class Main < Clamp::Command
42
44
  r.arch = arch
43
45
  r.type = type
44
46
  r.path = path
47
+ r.label = label
48
+ r.origin = origin
45
49
  unless gpg.nil?
46
50
  r.gpg = gpg
47
51
  end
@@ -12,7 +12,7 @@ require 'arr-pm'
12
12
  require File.join(File.dirname(__FILE__), 'rpm.rb')
13
13
 
14
14
  module Debian
15
- def build_apt_repo(path, component, arch, release, gpg, silent, nocache)
15
+ def build_apt_repo(path, component, arch, release, label, origin, gpg, silent, nocache)
16
16
  release.each { |r|
17
17
  component.each { |c|
18
18
  arch.each { |a|
@@ -30,7 +30,7 @@ module Debian
30
30
  generate_packages_gz(fpath,pfpath,path,rfpath,r,c,a, silent)
31
31
  }
32
32
  }
33
- generate_release(path,r,component,arch)
33
+ generate_release(path,r,component,arch,label,origin)
34
34
 
35
35
  unless gpg == false
36
36
  generate_release_gpg(path,r, gpg)
@@ -123,7 +123,7 @@ module Debian
123
123
  end
124
124
 
125
125
  package_info = [
126
- "Filename: #{npath}#{tdeb}",
126
+ "Filename: #{npath}#{s3_compatible_encode(tdeb)}",
127
127
  "MD5sum: #{md5sum}",
128
128
  "Size: #{init_size}"
129
129
  ]
@@ -148,7 +148,7 @@ module Debian
148
148
  end
149
149
  end
150
150
 
151
- def generate_release(path,release,component,arch)
151
+ def generate_release(path,release,component,arch,label,origin)
152
152
  date = Time.now.utc
153
153
 
154
154
  release_info = Hash.new()
@@ -181,9 +181,7 @@ module Debian
181
181
 
182
182
 
183
183
  template_dir = File.join(File.dirname(__FILE__), "..", "..", "templates")
184
- erb = ERB.new(File.open("#{template_dir}/deb_release.erb") { |file|
185
- file.read
186
- }).result(binding)
184
+ erb = ERB.new(File.read("#{template_dir}/deb_release.erb"), nil, "-").result(binding)
187
185
 
188
186
  release_file = File.new("#{path}/dists/#{release}/Release.tmp","wb")
189
187
  release_file.puts erb
@@ -203,6 +201,10 @@ module Debian
203
201
  system sign_cmd
204
202
  end
205
203
  end
204
+
205
+ def s3_compatible_encode(str)
206
+ str.gsub(/[#\$&'\(\)\*\+,\/:;=\?@\[\]]/) { |x| x.each_byte.map { |b| '%' + b.to_s(16) }.join }
207
+ end
206
208
  end
207
209
 
208
210
  module SNAP
@@ -347,6 +349,8 @@ module PRM
347
349
  attr_accessor :component
348
350
  attr_accessor :arch
349
351
  attr_accessor :release
352
+ attr_accessor :label
353
+ attr_accessor :origin
350
354
  attr_accessor :gpg
351
355
  attr_accessor :secretkey
352
356
  attr_accessor :accesskey
@@ -364,13 +368,13 @@ module PRM
364
368
  end
365
369
  if directory
366
370
  silent = true
367
- build_apt_repo(path,pcomponent,parch,prelease,gpg,silent,nocache)
371
+ build_apt_repo(path,pcomponent,parch,prelease,label,origin,gpg,silent,nocache)
368
372
  if move_packages(path,pcomponent,parch,prelease,directory) == false
369
373
  return
370
374
  end
371
375
  end
372
376
  silent = false
373
- build_apt_repo(path,pcomponent,parch,prelease,gpg,silent,nocache)
377
+ build_apt_repo(path,pcomponent,parch,prelease,label,origin,gpg,silent,nocache)
374
378
  elsif "#{@type}" == "sync"
375
379
  parch,pcomponent,prelease = _parse_vars(arch,component,release)
376
380
  sync_to_dho(path, accesskey, secretkey,pcomponent,prelease)
@@ -58,9 +58,7 @@ module Redhat
58
58
  template_dir = File.join(File.dirname(__FILE__), "..", "..", "templates")
59
59
 
60
60
  erb_files.each { |f|
61
- erb = ERB.new(File.open("#{template_dir}/#{f}.xml.erb") { |file|
62
- file.read
63
- }).result(binding)
61
+ erb = ERB.new(File.read("#{template_dir}/#{f}.xml.erb"), nil, "-").result(binding)
64
62
 
65
63
  release_file = File.new("#{repo_path}/#{f}.xml","wb")
66
64
  release_file.puts erb
@@ -115,7 +113,7 @@ module Redhat
115
113
  timestamp = Time.now.to_i
116
114
 
117
115
  repomd_xml << create_repomd_xml(xml_data_hash,timestamp)
118
- erb_two = ERB.new(File.open("#{template_dir}/repomd.xml.erb") { |file|
116
+ erb_two = ERB.new(File.open("#{template_dir}/repomd.xml.erb", nil, "-") { |file|
119
117
  file.read
120
118
  }).result(binding)
121
119
 
@@ -1,7 +1,13 @@
1
1
  Date: <%= date %>
2
2
  Suite: <%= release %>
3
+ <% if origin -%>
4
+ Origin: <%= origin %>
5
+ <% end -%>
6
+ <% if label -%>
7
+ Label: <%= label %>
8
+ <% end -%>
3
9
  MD5Sum:
4
10
  d41d8cd98f00b204e9800998ecf8427e 0 Release
5
- <% release_info.each_pair do |k,v| %> <%=
6
- "#{release_info[k]['md5sum']} #{release_info[k]['size']} #{k}" %>
7
- <% end %>
11
+ <% release_info.each_pair do |k,v| -%>
12
+ <%= "#{release_info[k]['md5sum']} #{release_info[k]['size']} #{k}" %>
13
+ <% end -%>
metadata CHANGED
@@ -1,128 +1,111 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: prm
3
- version: !ruby/object:Gem::Version
4
- hash: 5
5
- prerelease:
6
- segments:
7
- - 0
8
- - 2
9
- - 9
10
- version: 0.2.9
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.10
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Brett Gailey
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2014-01-14 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
11
+ date: 2015-08-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
21
14
  name: peach
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
26
17
  - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
32
20
  type: :runtime
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
35
- name: aws-s3
36
21
  prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
38
- none: false
39
- requirements:
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
40
24
  - - ">="
41
- - !ruby/object:Gem::Version
42
- hash: 3
43
- segments:
44
- - 0
45
- version: "0"
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: aws-s3
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
46
34
  type: :runtime
47
- version_requirements: *id002
48
- - !ruby/object:Gem::Dependency
49
- name: clamp
50
35
  prerelease: false
51
- requirement: &id003 !ruby/object:Gem::Requirement
52
- none: false
53
- requirements:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
54
38
  - - ">="
55
- - !ruby/object:Gem::Version
56
- hash: 3
57
- segments:
58
- - 0
59
- version: "0"
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: clamp
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
60
48
  type: :runtime
61
- version_requirements: *id003
62
- - !ruby/object:Gem::Dependency
63
- name: arr-pm
64
49
  prerelease: false
65
- requirement: &id004 !ruby/object:Gem::Requirement
66
- none: false
67
- requirements:
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: arr-pm
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
68
59
  - - ">="
69
- - !ruby/object:Gem::Version
70
- hash: 3
71
- segments:
72
- - 0
73
- version: "0"
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
74
62
  type: :runtime
75
- version_requirements: *id004
76
- description: "PRM (Package Repository Manager) is an Operating System independent Package Repository tool. It allows you to quickly build Debian and Yum Package Repositories. PRM supports Repository syncing to DreamObjects "
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: 'PRM (Package Repository Manager) is an Operating System independent
70
+ Package Repository tool. It allows you to quickly build Debian and Yum Package Repositories.
71
+ PRM supports Repository syncing to DreamObjects '
77
72
  email: brett.gailey@dreamhost.com
78
- executables:
73
+ executables:
79
74
  - prm
80
75
  extensions: []
81
-
82
76
  extra_rdoc_files: []
83
-
84
- files:
85
- - lib/prm/rpm.rb
86
- - lib/prm/repo.rb
77
+ files:
78
+ - bin/prm
87
79
  - lib/prm.rb
80
+ - lib/prm/repo.rb
81
+ - lib/prm/rpm.rb
88
82
  - templates/deb_release.erb
89
83
  - templates/filelists.xml.erb
90
84
  - templates/other.xml.erb
91
85
  - templates/primary.xml.erb
92
86
  - templates/repomd.xml.erb
93
- - bin/prm
94
87
  homepage: https://github.com/dnbert/prm
95
- licenses:
88
+ licenses:
96
89
  - MIT
90
+ metadata: {}
97
91
  post_install_message:
98
92
  rdoc_options: []
99
-
100
- require_paths:
93
+ require_paths:
101
94
  - lib
102
- required_ruby_version: !ruby/object:Gem::Requirement
103
- none: false
104
- requirements:
95
+ required_ruby_version: !ruby/object:Gem::Requirement
96
+ requirements:
105
97
  - - ">="
106
- - !ruby/object:Gem::Version
107
- hash: 3
108
- segments:
109
- - 0
110
- version: "0"
111
- required_rubygems_version: !ruby/object:Gem::Requirement
112
- none: false
113
- requirements:
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ required_rubygems_version: !ruby/object:Gem::Requirement
101
+ requirements:
114
102
  - - ">="
115
- - !ruby/object:Gem::Version
116
- hash: 3
117
- segments:
118
- - 0
119
- version: "0"
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
120
105
  requirements: []
121
-
122
106
  rubyforge_project:
123
- rubygems_version: 1.8.25
107
+ rubygems_version: 2.2.1
124
108
  signing_key:
125
- specification_version: 3
109
+ specification_version: 4
126
110
  summary: Package Repository Manager
127
111
  test_files: []
128
-