dr 0.0.4 → 0.0.5

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.
data/bin/dr CHANGED
@@ -17,7 +17,7 @@ class ExtendedThor < Thor
17
17
  include Dr::Logger
18
18
 
19
19
  def get_repo_handle
20
- if @conf == nil
20
+ unless @conf
21
21
  @conf = Dr::Config.new ["/etc/dr.conf", "~/.dr.conf"]
22
22
  end
23
23
 
data/lib/dr/debpackage.rb CHANGED
@@ -23,6 +23,9 @@ module Dr
23
23
 
24
24
  log :info, "Adding a build to the #{src_name.fg "blue"} source package"
25
25
 
26
+ log :info, "Signing the deb file"
27
+ repo.sign_deb deb_file
28
+
26
29
  FileUtils.mkdir_p deb_dir
27
30
  FileUtils.cp "#{deb_file}", "#{deb_dir}/"
28
31
  end
data/lib/dr/gitpackage.rb CHANGED
@@ -163,6 +163,9 @@ EOS
163
163
  FileUtils.mkdir_p build_dir
164
164
  debs.each do |pkg|
165
165
  FileUtils.cp pkg, build_dir
166
+
167
+ log :info, "Signing the #{File.basename(pkg).fg("blue")} package"
168
+ @repo.sign_deb "#{build_dir}/#{File.basename(pkg)}"
166
169
  end
167
170
  end
168
171
  end
data/lib/dr/gnupg.rb CHANGED
@@ -59,7 +59,11 @@ END
59
59
  key
60
60
  end
61
61
 
62
- def get_id
62
+ def get_key_id(key)
63
+ cmd = "gpg --homedir #{@keyring} --with-colons --list-public-keys #{key}"
64
+ gpg = ShellCmd.new cmd, :tag => "gpg"
65
+
66
+ gpg.out.lines.grep(/^pub/)[0].split(":")[9]
63
67
  end
64
68
 
65
69
  def export_pub(key, location)
data/lib/dr/repo.rb CHANGED
@@ -289,7 +289,25 @@ module Dr
289
289
  Dir["#{@location}/packages/#{pkg.name}/builds/#{version}/*"]
290
290
  end
291
291
 
292
+ def sign_deb(deb)
293
+ keyring = "#{@location}/gnupg-keyring"
294
+ gpg = GnuPG.new keyring
295
+ key_id = gpg.get_key_id get_key
296
+
297
+ cmd = "dpkg-sig -k '#{key_id}' -s builder -g '--homedir #{keyring}' #{deb}"
298
+ ShellCmd.new cmd, :tag => "dpkg-sig", :show_out => true
299
+ end
300
+
292
301
  private
302
+ def get_key
303
+ File.open "#{@location}/archive/conf/distributions", "r" do |f|
304
+ f.each_line do |line|
305
+ m = line.match /^SignWith: (.+)/
306
+ return m.captures[0] if m
307
+ end
308
+ end
309
+ end
310
+
293
311
  def is_used?(pkg_name, version=nil)
294
312
  versions_by_suite = get_subpackage_versions pkg_name
295
313
  versions_by_suite.inject(false) do |rslt, hash_pair|
data/lib/dr/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Dr
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-03-04 00:00:00.000000000 Z
12
+ date: 2014-03-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor