rake_gpg 0.8.0 → 0.12.0

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: d31b03b13d2df23b40e74620d127e22fc5761ddda3042f6e1dfe85a6bd515e0a
4
- data.tar.gz: 42725740b5fa19e324b93c4f7ad90ec1e3c5beb54f100a5a41c92c406cf11ec2
3
+ metadata.gz: c5b7a0a2ff824a044c8c167253fb105591b2513449a03b2db74fae54d1bfd43a
4
+ data.tar.gz: 7e6ab087c7b3735bf47fd47b668452b75fa27e08178847e64abd68474b2a5b18
5
5
  SHA512:
6
- metadata.gz: ee66af1dda73a73b538a9970b7025bfc0a3714634822c9ca58060bea3c60b0cbc4b16ea4635ed67fe8ce730b82736717eab7eeba75c9098386c0d342e65d8b8b
7
- data.tar.gz: bf3d36a55eb58b37fe22f7950b533dada89b2b6761a752d8be90074981c15c7783fad662d193da1f6cf2c6c339f06f621e1dd7f9a2b1abf98583a755937d0445
6
+ metadata.gz: 5836b6dd38360cf20074d1847c4a819a1765dfa6beb96c9554f088f1c7984852d7fc1b8fe9dce99dc418f4e5ae7dbfc12992143356c0e717ac2cc45b0b4efb4c
7
+ data.tar.gz: 8e163a7783db4b817fdbdb925ef726b8851bf58b007148b10add02eb8b3c1095ce7c1fc8e00b7858fad4222591f320deda1c8f510a9e59e1f8e52e6b0f91ecce
@@ -1,45 +1,46 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rake_gpg (0.8.0)
4
+ rake_gpg (0.12.0)
5
5
  rake_factory (>= 0.23, < 1)
6
- ruby_gpg2 (>= 0.2, < 1)
6
+ ruby_gpg2 (>= 0.6, < 1)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- activesupport (6.0.3)
11
+ activesupport (6.1.0)
12
12
  concurrent-ruby (~> 1.0, >= 1.0.2)
13
- i18n (>= 0.7, < 2)
14
- minitest (~> 5.1)
15
- tzinfo (~> 1.1)
16
- zeitwerk (~> 2.2, >= 2.2.2)
13
+ i18n (>= 1.6, < 2)
14
+ minitest (>= 5.1)
15
+ tzinfo (~> 2.0)
16
+ zeitwerk (~> 2.3)
17
17
  addressable (2.7.0)
18
18
  public_suffix (>= 2.0.2, < 5.0)
19
19
  colored2 (3.1.2)
20
- concurrent-ruby (1.1.6)
21
- diff-lcs (1.3)
22
- docile (1.3.2)
23
- excon (0.73.0)
24
- fakefs (1.2.2)
25
- faraday (1.0.1)
20
+ concurrent-ruby (1.1.7)
21
+ diff-lcs (1.4.4)
22
+ docile (1.3.3)
23
+ excon (0.78.1)
24
+ fakefs (1.3.0)
25
+ faraday (1.1.0)
26
26
  multipart-post (>= 1.2, < 3)
27
- gem-release (2.1.1)
27
+ ruby2_keywords
28
+ gem-release (2.2.0)
28
29
  hamster (3.0.0)
29
30
  concurrent-ruby (~> 1.0)
30
- i18n (1.8.2)
31
+ i18n (1.8.5)
31
32
  concurrent-ruby (~> 1.0)
32
- lino (1.3.0)
33
+ lino (1.5.0)
33
34
  hamster (~> 3.0)
34
35
  open4 (~> 1.3)
35
- minitest (5.14.0)
36
+ minitest (5.14.2)
36
37
  multipart-post (2.1.1)
37
- octokit (4.18.0)
38
+ octokit (4.19.0)
38
39
  faraday (>= 0.9)
39
40
  sawyer (~> 0.8.0, >= 0.5.3)
40
41
  open4 (1.3.4)
41
- public_suffix (4.0.4)
42
- rake (13.0.1)
42
+ public_suffix (4.0.6)
43
+ rake (13.0.2)
43
44
  rake_circle_ci (0.7.0)
44
45
  colored2 (~> 3.1)
45
46
  excon (~> 0.72)
@@ -57,37 +58,41 @@ GEM
57
58
  colored2 (~> 3.1)
58
59
  rake_factory (~> 0.23)
59
60
  sshkey (~> 2.0)
60
- rspec (3.9.0)
61
- rspec-core (~> 3.9.0)
62
- rspec-expectations (~> 3.9.0)
63
- rspec-mocks (~> 3.9.0)
64
- rspec-core (3.9.2)
65
- rspec-support (~> 3.9.3)
66
- rspec-expectations (3.9.2)
61
+ rspec (3.10.0)
62
+ rspec-core (~> 3.10.0)
63
+ rspec-expectations (~> 3.10.0)
64
+ rspec-mocks (~> 3.10.0)
65
+ rspec-core (3.10.0)
66
+ rspec-support (~> 3.10.0)
67
+ rspec-expectations (3.10.0)
67
68
  diff-lcs (>= 1.2.0, < 2.0)
68
- rspec-support (~> 3.9.0)
69
- rspec-mocks (3.9.1)
69
+ rspec-support (~> 3.10.0)
70
+ rspec-mocks (3.10.0)
70
71
  diff-lcs (>= 1.2.0, < 2.0)
71
- rspec-support (~> 3.9.0)
72
- rspec-support (3.9.3)
73
- ruby_gpg2 (0.2.0)
74
- lino (= 1.3.0)
72
+ rspec-support (~> 3.10.0)
73
+ rspec-support (3.10.0)
74
+ ruby2_keywords (0.0.2)
75
+ ruby_gpg2 (0.6.0)
76
+ lino (>= 1.5)
75
77
  sawyer (0.8.2)
76
78
  addressable (>= 2.3.5)
77
79
  faraday (> 0.8, < 2.0)
78
80
  semantic (1.6.1)
79
- simplecov (0.18.5)
81
+ simplecov (0.20.0)
80
82
  docile (~> 1.1)
81
83
  simplecov-html (~> 0.11)
82
- simplecov-html (0.12.2)
84
+ simplecov_json_formatter (~> 0.1)
85
+ simplecov-html (0.12.3)
86
+ simplecov_json_formatter (0.1.2)
83
87
  sshkey (2.0.0)
84
- thread_safe (0.3.6)
85
- tzinfo (1.2.7)
86
- thread_safe (~> 0.1)
87
- zeitwerk (2.3.0)
88
+ tzinfo (2.0.4)
89
+ concurrent-ruby (~> 1.0)
90
+ zeitwerk (2.4.2)
88
91
 
89
92
  PLATFORMS
90
93
  ruby
94
+ x86_64-darwin-19
95
+ x86_64-linux
91
96
 
92
97
  DEPENDENCIES
93
98
  activesupport (>= 5.2)
@@ -104,4 +109,4 @@ DEPENDENCIES
104
109
  simplecov (~> 0.16)
105
110
 
106
111
  BUNDLED WITH
107
- 2.1.4
112
+ 2.2.2
data/Rakefile CHANGED
@@ -73,8 +73,5 @@ task :release do
73
73
  end
74
74
 
75
75
  def bump_version_for(version_type)
76
- sh "gem bump --version #{version_type} " +
77
- "&& bundle install " +
78
- "&& export LAST_MESSAGE=\"$(git log -1 --pretty=%B)\" " +
79
- "&& git commit -a --amend -m \"${LAST_MESSAGE} [ci skip]\""
76
+ sh "gem bump --version #{version_type}"
80
77
  end
@@ -0,0 +1,19 @@
1
+ module RakeGPG
2
+ class Home
3
+ def initialize(work_directory, home_directory)
4
+ @work_directory = work_directory
5
+ @home_directory = home_directory
6
+ end
7
+
8
+ def with_resolved_directory
9
+ if @home_directory == :temporary
10
+ Dir.mktmpdir('home', @work_directory) do |home_directory|
11
+ yield home_directory
12
+ end
13
+ else
14
+ FileUtils.mkdir_p(@home_directory)
15
+ yield @home_directory
16
+ end
17
+ end
18
+ end
19
+ end
@@ -1,6 +1,8 @@
1
1
  require 'rake_factory'
2
2
  require 'ruby_gpg2'
3
3
 
4
+ require_relative '../../home'
5
+
4
6
  module RakeGPG
5
7
  module Tasks
6
8
  module Encryption
@@ -12,7 +14,7 @@ module RakeGPG
12
14
  parameter :input_file_path, required: true
13
15
  parameter :output_file_path, required: true
14
16
 
15
- parameter :work_directory, default: 'build/gpg'
17
+ parameter :work_directory, default: '/tmp'
16
18
  parameter :home_directory, default: :temporary
17
19
 
18
20
  parameter :trust_mode, default: :always
@@ -20,34 +22,26 @@ module RakeGPG
20
22
 
21
23
  action do |t|
22
24
  mkdir_p(t.work_directory)
23
- if t.home_directory == :temporary
24
- Dir.mktmpdir(
25
- 'home', t.work_directory) do |home_directory|
26
- do_decrypt(t, home_directory)
27
- end
28
- else
29
- mkdir_p(t.home_directory)
30
- do_decrypt(t, t.home_directory)
31
- end
32
- end
33
25
 
34
- private
35
-
36
- def do_decrypt(t, home_directory)
37
26
  puts "Decrypting #{t.input_file_path} with key #{t.key_file_path}..."
38
- RubyGPG2.import(
39
- key_file_paths: [t.key_file_path],
40
- work_directory: t.work_directory,
41
- home_directory: home_directory)
42
-
43
- RubyGPG2.decrypt(
44
- input_file_path: t.input_file_path,
45
- output_file_path: t.output_file_path,
46
- home_directory: home_directory,
47
- trust_mode: t.trust_mode,
48
- passphrase: t.passphrase,
49
- pinentry_mode: t.passphrase ? :loopback : nil,
50
- without_passphrase: !t.passphrase)
27
+ Home.new(t.work_directory, t.home_directory)
28
+ .with_resolved_directory do |home_directory|
29
+ RubyGPG2.import(
30
+ key_file_paths: [t.key_file_path],
31
+ work_directory: t.work_directory,
32
+ home_directory: home_directory)
33
+
34
+ mkdir_p(File.dirname(t.output_file_path))
35
+
36
+ RubyGPG2.decrypt(
37
+ input_file_path: t.input_file_path,
38
+ output_file_path: t.output_file_path,
39
+ home_directory: home_directory,
40
+ trust_mode: t.trust_mode,
41
+ passphrase: t.passphrase,
42
+ pinentry_mode: t.passphrase ? :loopback : nil,
43
+ without_passphrase: !t.passphrase)
44
+ end
51
45
  puts "Done."
52
46
  end
53
47
  end
@@ -1,6 +1,8 @@
1
1
  require 'rake_factory'
2
2
  require 'ruby_gpg2'
3
3
 
4
+ require_relative '../../home'
5
+
4
6
  module RakeGPG
5
7
  module Tasks
6
8
  module Encryption
@@ -12,7 +14,7 @@ module RakeGPG
12
14
  parameter :input_file_path, required: true
13
15
  parameter :output_file_path, required: true
14
16
 
15
- parameter :work_directory, default: 'build/gpg'
17
+ parameter :work_directory, default: '/tmp'
16
18
  parameter :home_directory, default: :temporary
17
19
 
18
20
  parameter :armor, default: true
@@ -20,40 +22,32 @@ module RakeGPG
20
22
 
21
23
  action do |t|
22
24
  mkdir_p(t.work_directory)
23
- if t.home_directory == :temporary
24
- Dir.mktmpdir(
25
- 'home', t.work_directory) do |home_directory|
26
- do_encrypt(t, home_directory)
27
- end
28
- else
29
- mkdir_p(t.home_directory)
30
- do_encrypt(t, t.home_directory)
31
- end
32
- end
33
25
 
34
- private
35
-
36
- def do_encrypt(t, home_directory)
37
26
  puts "Encrypting #{t.input_file_path} for key #{t.key_file_path}..."
38
- result = RubyGPG2.import(
39
- key_file_paths: [t.key_file_path],
40
- work_directory: t.work_directory,
41
- home_directory: home_directory,
42
- with_status: true)
43
-
44
- key_fingerprint = result
45
- .status
46
- .filter_by_type(:import_ok)
47
- .first_line
48
- .key_fingerprint
49
-
50
- RubyGPG2.encrypt(
51
- recipient: key_fingerprint,
52
- input_file_path: t.input_file_path,
53
- output_file_path: t.output_file_path,
54
- home_directory: home_directory,
55
- armor: t.armor,
56
- trust_mode: t.trust_mode)
27
+ Home.new(t.work_directory, t.home_directory)
28
+ .with_resolved_directory do |home_directory|
29
+ result = RubyGPG2.import(
30
+ key_file_paths: [t.key_file_path],
31
+ work_directory: t.work_directory,
32
+ home_directory: home_directory,
33
+ with_status: true)
34
+
35
+ key_fingerprint = result
36
+ .status
37
+ .filter_by_type(:import_ok)
38
+ .first_line
39
+ .key_fingerprint
40
+
41
+ mkdir_p(File.dirname(t.output_file_path))
42
+
43
+ RubyGPG2.encrypt(
44
+ recipient: key_fingerprint,
45
+ input_file_path: t.input_file_path,
46
+ output_file_path: t.output_file_path,
47
+ home_directory: home_directory,
48
+ armor: t.armor,
49
+ trust_mode: t.trust_mode)
50
+ end
57
51
  puts "Done."
58
52
  end
59
53
  end
@@ -1,6 +1,8 @@
1
1
  require 'rake_factory'
2
2
  require 'ruby_gpg2'
3
3
 
4
+ require_relative '../../home'
5
+
4
6
  module RakeGPG
5
7
  module Tasks
6
8
  module Keys
@@ -11,7 +13,7 @@ module RakeGPG
11
13
  parameter :name_prefix, default: 'gpg'
12
14
  parameter :armor, default: true
13
15
 
14
- parameter :work_directory, default: 'build/gpg'
16
+ parameter :work_directory, default: '/tmp'
15
17
  parameter :home_directory, default: :temporary
16
18
  parameter :output_directory
17
19
 
@@ -29,62 +31,48 @@ module RakeGPG
29
31
 
30
32
  action do |t|
31
33
  mkdir_p(t.work_directory)
32
- if t.home_directory == :temporary
33
- Dir.mktmpdir(
34
- 'home', t.work_directory) do |home_directory|
35
- do_generate_key(t, home_directory)
36
- end
37
- else
38
- mkdir_p(t.home_directory)
39
- do_generate_key(t, t.home_directory)
40
- end
41
- end
42
-
43
- private
44
34
 
45
- def do_generate_key(t, home_directory)
46
35
  puts "Generating GPG key for #{t.owner_name} <#{t.owner_email}>..."
36
+ Home.new(t.work_directory, t.home_directory)
37
+ .with_resolved_directory do |home_directory|
38
+ mkdir_p t.output_directory if t.output_directory
47
39
 
48
- mkdir_p t.work_directory
49
- mkdir_p t.output_directory if t.output_directory
50
- mkdir_p home_directory if home_directory
51
-
52
- result = RubyGPG2::ParameterFileContents
53
- .new(t.parameter_values)
54
- .in_temp_file(t.work_directory) do |f|
55
- RubyGPG2.generate_key(
56
- parameter_file_path: f.path,
57
- home_directory: home_directory,
58
- work_directory: t.work_directory,
59
- without_passphrase: t.passphrase.nil?,
60
- with_status: true)
61
- end
40
+ result = RubyGPG2::ParameterFileContents
41
+ .new(t.parameter_values)
42
+ .in_temp_file(t.work_directory) do |f|
43
+ RubyGPG2.generate_key(
44
+ parameter_file_path: f.path,
45
+ home_directory: home_directory,
46
+ work_directory: t.work_directory,
47
+ without_passphrase: t.passphrase.nil?,
48
+ with_status: true)
49
+ end
62
50
 
63
- key_fingerprint = result
64
- .status
65
- .filter_by_type(:key_created)
66
- .first_line
67
- .key_fingerprint
51
+ key_fingerprint = result
52
+ .status
53
+ .filter_by_type(:key_created)
54
+ .first_line
55
+ .key_fingerprint
68
56
 
69
- puts "Generated GPG key with fingerprint #{key_fingerprint}."
57
+ puts "Generated GPG key with fingerprint #{key_fingerprint}."
70
58
 
71
- if t.output_directory
72
- puts 'Export requested. ' +
73
- "Exporting GPG key to #{t.output_directory}..."
74
- RubyGPG2.export(
75
- names: [key_fingerprint],
76
- output_file_path:
77
- "#{t.output_directory}/#{t.name_prefix}.public",
78
- armor: t.armor,
79
- home_directory: home_directory)
80
- RubyGPG2.export_secret_keys(
81
- names: [key_fingerprint],
82
- output_file_path:
83
- "#{t.output_directory}/#{t.name_prefix}.private",
84
- armor: t.armor,
85
- home_directory: home_directory)
59
+ if t.output_directory
60
+ puts 'Export requested. ' +
61
+ "Exporting GPG key to #{t.output_directory}..."
62
+ RubyGPG2.export(
63
+ names: [key_fingerprint],
64
+ output_file_path:
65
+ "#{t.output_directory}/#{t.name_prefix}.public",
66
+ armor: t.armor,
67
+ home_directory: home_directory)
68
+ RubyGPG2.export_secret_keys(
69
+ names: [key_fingerprint],
70
+ output_file_path:
71
+ "#{t.output_directory}/#{t.name_prefix}.private",
72
+ armor: t.armor,
73
+ home_directory: home_directory)
74
+ end
86
75
  end
87
-
88
76
  puts "Done."
89
77
  end
90
78
  end
@@ -1,6 +1,8 @@
1
1
  require 'rake_factory'
2
2
  require 'ruby_gpg2'
3
3
 
4
+ require_relative '../../home'
5
+
4
6
  module RakeGPG
5
7
  module Tasks
6
8
  module Keys
@@ -9,31 +11,20 @@ module RakeGPG
9
11
  default_description "Import a GPG key"
10
12
 
11
13
  parameter :key_file_path, required: true
12
- parameter :work_directory, default: 'build/gpg'
14
+ parameter :work_directory, default: '/tmp'
13
15
  parameter :home_directory, default: :temporary
14
16
 
15
17
  action do |t|
16
18
  mkdir_p(t.work_directory)
17
- if t.home_directory == :temporary
18
- Dir.mktmpdir(
19
- 'home', t.work_directory) do |home_directory|
20
- do_import_key(t, home_directory)
21
- end
22
- else
23
- mkdir_p(t.home_directory)
24
- do_import_key(t, t.home_directory)
25
- end
26
-
27
- end
28
-
29
- private
30
19
 
31
- def do_import_key(t, home_directory)
32
20
  puts "Importing GPG key from #{t.key_file_path} " +
33
21
  "into #{home_directory}..."
34
- RubyGPG2.import(
35
- key_file_paths: [t.key_file_path],
36
- home_directory: home_directory)
22
+ Home.new(t.work_directory, t.home_directory)
23
+ .with_resolved_directory do |home_directory|
24
+ RubyGPG2.import(
25
+ key_file_paths: [t.key_file_path],
26
+ home_directory: home_directory)
27
+ end
37
28
  puts "Done."
38
29
  end
39
30
  end
@@ -1,3 +1,3 @@
1
1
  module RakeGPG
2
- VERSION = '0.8.0'
2
+ VERSION = '0.12.0'
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 'ruby_gpg2', '>= 0.2', '< 1'
28
+ spec.add_dependency 'ruby_gpg2', '>= 0.6', '< 1'
29
29
 
30
30
  spec.add_development_dependency 'bundler', '~> 2.1'
31
31
  spec.add_development_dependency 'rake', '~> 13.0'
@@ -10,6 +10,11 @@ PROJECT_DIR="$( cd "$SCRIPT_DIR/../../.." && pwd )"
10
10
  cd "$PROJECT_DIR"
11
11
 
12
12
  ./go version:bump[pre]
13
+
14
+ bundle install
15
+ LAST_MESSAGE="$(git log -1 --pretty=%B)"
16
+ git commit -a --amend -m "${LAST_MESSAGE} [ci skip]"
17
+
13
18
  ./go release
14
19
 
15
20
  git status
@@ -12,6 +12,11 @@ cd "$PROJECT_DIR"
12
12
  git pull
13
13
 
14
14
  ./go version:bump[minor]
15
+
16
+ bundle install
17
+ LAST_MESSAGE="$(git log -1 --pretty=%B)"
18
+ git commit -a --amend -m "${LAST_MESSAGE} [ci skip]"
19
+
15
20
  ./go release
16
21
 
17
22
  git status
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.8.0
4
+ version: 0.12.0
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-05-09 00:00:00.000000000 Z
11
+ date: 2020-12-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake_factory
@@ -36,7 +36,7 @@ dependencies:
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: '0.2'
39
+ version: '0.6'
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
42
  version: '1'
@@ -46,7 +46,7 @@ dependencies:
46
46
  requirements:
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: '0.2'
49
+ version: '0.6'
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
52
  version: '1'
@@ -241,6 +241,7 @@ files:
241
241
  - config/secrets/rubygems/credentials
242
242
  - go
243
243
  - lib/rake_gpg.rb
244
+ - lib/rake_gpg/home.rb
244
245
  - lib/rake_gpg/tasks.rb
245
246
  - lib/rake_gpg/tasks/encryption.rb
246
247
  - lib/rake_gpg/tasks/encryption/decrypt.rb