rake_gpg 0.1.0.pre.1 → 0.1.0.pre.2

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
2
  SHA256:
3
- metadata.gz: 244f0639de03e8b4339745ae30299db15b65b938ba5eef87bf6f34201861482c
4
- data.tar.gz: 28c1bdf776209d4f25346f04346e6be58eba480d7f424a64aa4be745f3e1b19f
3
+ metadata.gz: 71cc1c8c7a227a65593c2b45ff898e5f60f7aacc42a891446c593e0addbe927a
4
+ data.tar.gz: e7e090e33f25dffed018d7a0984ccb909a49586b7928c635c0577a454e9a47c1
5
5
  SHA512:
6
- metadata.gz: e689e81926a08b2bd9bba57e1a4a8d6089d1beeed6cfd1dad262641bcd92e19bb50c20a83ccbce5164a2190ef271785fa2e88fc3b7006de09fa01923571d4a45
7
- data.tar.gz: 5a98b0cd61caf00ec197156b54946a5464661d8de2ebdb1dc7dbba454947bb161b43f7eebabec601abbc098d4ed438e5239fb40475a42d939636ff533132d0f3
6
+ metadata.gz: bf95f82f7316eeab4712703039aa89a5de108452414f8759f21d9e99da6b7622d8ebf0ef92c81123426c663973ac1075eb5b36cdba4fd0e738533d3868504199
7
+ data.tar.gz: 92f5be43288e18e856d9913c359664839672f825e3befbfbfebffc366828e211ce7179da2c3518a97e7e8bc7610744e839bf169b77a2fb5ffc77483fddb4cd16
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rake_gpg (0.1.0.pre.1)
5
- gpgme (~> 2.0)
4
+ rake_gpg (0.1.0.pre.2)
6
5
  rake_factory (>= 0.23, < 1)
6
+ ruby_gpg2 (= 0.1.0.pre.22)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
@@ -25,16 +25,19 @@ GEM
25
25
  faraday (1.0.1)
26
26
  multipart-post (>= 1.2, < 3)
27
27
  gem-release (2.1.1)
28
- gpgme (2.0.20)
29
- mini_portile2 (~> 2.3)
28
+ hamster (3.0.0)
29
+ concurrent-ruby (~> 1.0)
30
30
  i18n (1.8.2)
31
31
  concurrent-ruby (~> 1.0)
32
- mini_portile2 (2.5.0)
32
+ lino (1.3.0)
33
+ hamster (~> 3.0)
34
+ open4 (~> 1.3)
33
35
  minitest (5.14.0)
34
36
  multipart-post (2.1.1)
35
37
  octokit (4.18.0)
36
38
  faraday (>= 0.9)
37
39
  sawyer (~> 0.8.0, >= 0.5.3)
40
+ open4 (1.3.4)
38
41
  public_suffix (4.0.4)
39
42
  rake (13.0.1)
40
43
  rake_circle_ci (0.7.0)
@@ -58,15 +61,17 @@ GEM
58
61
  rspec-core (~> 3.9.0)
59
62
  rspec-expectations (~> 3.9.0)
60
63
  rspec-mocks (~> 3.9.0)
61
- rspec-core (3.9.1)
62
- rspec-support (~> 3.9.1)
64
+ rspec-core (3.9.2)
65
+ rspec-support (~> 3.9.3)
63
66
  rspec-expectations (3.9.1)
64
67
  diff-lcs (>= 1.2.0, < 2.0)
65
68
  rspec-support (~> 3.9.0)
66
69
  rspec-mocks (3.9.1)
67
70
  diff-lcs (>= 1.2.0, < 2.0)
68
71
  rspec-support (~> 3.9.0)
69
- rspec-support (3.9.2)
72
+ rspec-support (3.9.3)
73
+ ruby_gpg2 (0.1.0.pre.22)
74
+ lino (= 1.3.0)
70
75
  sawyer (0.8.2)
71
76
  addressable (>= 2.3.5)
72
77
  faraday (> 0.8, < 2.0)
@@ -1,4 +1,5 @@
1
1
  require 'rake_gpg/version'
2
+ require 'rake_gpg/tasks'
2
3
 
3
4
  module RakeGPG
4
5
 
@@ -0,0 +1,7 @@
1
+ require_relative 'tasks/key'
2
+
3
+ module RakeGPG
4
+ module Tasks
5
+
6
+ end
7
+ end
@@ -0,0 +1,9 @@
1
+ require_relative 'key/generate'
2
+
3
+ module RakeGPG
4
+ module Tasks
5
+ module Key
6
+
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,91 @@
1
+ require 'rake_factory'
2
+ require 'ruby_gpg2'
3
+
4
+ module RakeGPG
5
+ module Tasks
6
+ module Key
7
+ class Generate < RakeFactory::Task
8
+ default_name :generate
9
+ default_description "Generate a GPG key"
10
+
11
+ parameter :name_prefix, default: 'gpg'
12
+ parameter :armor, default: true
13
+
14
+ parameter :work_directory, default: 'build/gpg'
15
+ parameter :home_directory, default: :temporary
16
+ parameter :output_directory
17
+
18
+ parameter :key_type, default: 'RSA'
19
+ parameter :key_length, default: 2048
20
+ parameter :subkey_type, default: 'RSA'
21
+ parameter :subkey_length, default: 2048
22
+
23
+ parameter :owner_name, required: true
24
+ parameter :owner_email, required: true
25
+ parameter :owner_comment
26
+
27
+ parameter :expiry, default: :never
28
+ parameter :passphrase
29
+
30
+ action do |t|
31
+ if t.home_directory == :temporary
32
+ Dir.mktmpdir(
33
+ 'home', t.work_directory) do |home_directory|
34
+ generate_key(t, home_directory)
35
+ end
36
+ else
37
+ generate_key(t, t.home_directory)
38
+ end
39
+ end
40
+
41
+ private
42
+
43
+ def generate_key(t, home_directory)
44
+ puts "Generating GPG key for #{t.owner_name} <#{t.owner_email}>..."
45
+
46
+ mkdir_p t.work_directory
47
+ mkdir_p t.output_directory if t.output_directory
48
+ mkdir_p home_directory if home_directory
49
+
50
+ result = RubyGPG2::ParameterFileContents
51
+ .new(t.parameter_values)
52
+ .in_temp_file(t.work_directory) do |f|
53
+ RubyGPG2.generate_key(
54
+ parameter_file_path: f.path,
55
+ home_directory: home_directory,
56
+ work_directory: t.work_directory,
57
+ without_passphrase: t.passphrase.nil?,
58
+ with_status: true)
59
+ end
60
+
61
+ key_fingerprint = result
62
+ .status
63
+ .filter_by_type(:key_created)
64
+ .first_line
65
+ .key_fingerprint
66
+
67
+ puts "Generated GPG key with fingerprint #{key_fingerprint}."
68
+
69
+ if t.output_directory
70
+ puts 'Export requested. ' +
71
+ "Exporting GPG key to #{t.output_directory}..."
72
+ RubyGPG2.export(
73
+ names: [key_fingerprint],
74
+ output_file_path:
75
+ "#{t.output_directory}/#{t.name_prefix}.public",
76
+ armor: t.armor,
77
+ home_directory: home_directory)
78
+ RubyGPG2.export_secret_keys(
79
+ names: [key_fingerprint],
80
+ output_file_path:
81
+ "#{t.output_directory}/#{t.name_prefix}.private",
82
+ armor: t.armor,
83
+ home_directory: home_directory)
84
+ end
85
+
86
+ puts "Done."
87
+ end
88
+ end
89
+ end
90
+ end
91
+ end
@@ -1,3 +1,3 @@
1
1
  module RakeGPG
2
- VERSION = '0.1.0.pre.1'
2
+ VERSION = '0.1.0.pre.2'
3
3
  end
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
25
25
  spec.required_ruby_version = '>= 2.6.0'
26
26
 
27
27
  spec.add_dependency 'rake_factory', '>= 0.23', '< 1'
28
- spec.add_dependency 'gpgme', '~> 2.0'
28
+ spec.add_dependency 'ruby_gpg2', '0.1.0.pre.22'
29
29
 
30
30
  spec.add_development_dependency 'bundler', '~> 2.1'
31
31
  spec.add_development_dependency 'rake', '~> 13.0'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake_gpg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.pre.1
4
+ version: 0.1.0.pre.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Toby Clemson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-04-25 00:00:00.000000000 Z
11
+ date: 2020-05-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake_factory
@@ -31,19 +31,19 @@ dependencies:
31
31
  - !ruby/object:Gem::Version
32
32
  version: '1'
33
33
  - !ruby/object:Gem::Dependency
34
- name: gpgme
34
+ name: ruby_gpg2
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - "~>"
37
+ - - '='
38
38
  - !ruby/object:Gem::Version
39
- version: '2.0'
39
+ version: 0.1.0.pre.22
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - "~>"
44
+ - - '='
45
45
  - !ruby/object:Gem::Version
46
- version: '2.0'
46
+ version: 0.1.0.pre.22
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -235,6 +235,9 @@ files:
235
235
  - config/secrets/rubygems/credentials
236
236
  - go
237
237
  - lib/rake_gpg.rb
238
+ - lib/rake_gpg/tasks.rb
239
+ - lib/rake_gpg/tasks/key.rb
240
+ - lib/rake_gpg/tasks/key/generate.rb
238
241
  - lib/rake_gpg/version.rb
239
242
  - rake_gpg.gemspec
240
243
  - scripts/ci/common/configure-git.sh