rake_git_crypt 0.1.0.pre.5 → 0.1.0.pre.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 +4 -4
- data/Gemfile.lock +1 -1
- data/lib/rake_git_crypt/home.rb +19 -0
- data/lib/rake_git_crypt/tasks/add_user.rb +30 -12
- data/lib/rake_git_crypt/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 21646ae3a4b84a88a127a9330d98a60859bef7dd63f7530379a91891c19941c1
|
4
|
+
data.tar.gz: 72f4e093a66eeaf51fd99b86b1053a8d0f58d23c07d389ebeee818267b8fb22b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: add9d5c347374136880e7488523da77baf2a3df14aeffaf424463157a4f9917a09f66c1fae58284fe1ba245ac13e92565f45ef59433362c70571b6c0c152c32f
|
7
|
+
data.tar.gz: '0549fd57e7b9e9d7dfa1e83b86ee855b42cb814941dc667fce1c7b3ef355633bf51279faa3748e72f7b8cda7930f503e0b98a395f2f972cbf70a8b224d0053b3'
|
data/Gemfile.lock
CHANGED
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RakeGitCrypt
|
4
|
+
class Home
|
5
|
+
def initialize(work_directory, home_directory)
|
6
|
+
@work_directory = work_directory
|
7
|
+
@home_directory = home_directory
|
8
|
+
end
|
9
|
+
|
10
|
+
def with_resolved_directory(&block)
|
11
|
+
if @home_directory == :temporary
|
12
|
+
Dir.mktmpdir('home', @work_directory, &block)
|
13
|
+
else
|
14
|
+
FileUtils.mkdir_p(@home_directory) if @home_directory
|
15
|
+
yield @home_directory
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -4,6 +4,8 @@ require 'rake_factory'
|
|
4
4
|
require 'ruby_git_crypt'
|
5
5
|
require 'ruby_gpg2'
|
6
6
|
|
7
|
+
require_relative '../home'
|
8
|
+
|
7
9
|
module RakeGitCrypt
|
8
10
|
module Tasks
|
9
11
|
class AddUser < RakeFactory::Task
|
@@ -19,27 +21,37 @@ module RakeGitCrypt
|
|
19
21
|
parameter :gpg_user_key_path
|
20
22
|
|
21
23
|
parameter :gpg_home_directory
|
24
|
+
parameter :gpg_work_directory, default: '/tmp'
|
22
25
|
|
23
26
|
action do
|
24
27
|
validate
|
25
28
|
|
26
29
|
if gpg_user_id
|
27
30
|
log_adding_by_id
|
28
|
-
add_gpg_user(gpg_user_id)
|
31
|
+
add_gpg_user(gpg_home_directory, gpg_user_id)
|
29
32
|
log_done
|
30
33
|
end
|
31
34
|
|
32
35
|
if gpg_user_key_path
|
33
36
|
log_adding_by_key_path
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
+
with_gpg_home_directory do |home_directory|
|
38
|
+
result = import_key(home_directory)
|
39
|
+
key_fingerprint = lookup_key_fingerprint(result)
|
40
|
+
add_gpg_user(home_directory, key_fingerprint)
|
41
|
+
end
|
37
42
|
log_done
|
38
43
|
end
|
39
44
|
end
|
40
45
|
|
41
46
|
private
|
42
47
|
|
48
|
+
def with_gpg_home_directory(&block)
|
49
|
+
Home.new(gpg_work_directory, gpg_home_directory || :temporary)
|
50
|
+
.with_resolved_directory do |home_directory|
|
51
|
+
block.call(home_directory)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
43
55
|
def validate
|
44
56
|
return if gpg_user_id || gpg_user_key_path
|
45
57
|
|
@@ -48,9 +60,11 @@ module RakeGitCrypt
|
|
48
60
|
'but neither was.'
|
49
61
|
end
|
50
62
|
|
51
|
-
def import_key
|
63
|
+
def import_key(gpg_home_directory)
|
52
64
|
RubyGPG2.import(
|
53
65
|
key_file_paths: [gpg_user_key_path],
|
66
|
+
work_directory: gpg_work_directory,
|
67
|
+
home_directory: gpg_home_directory,
|
54
68
|
with_status: true
|
55
69
|
)
|
56
70
|
end
|
@@ -60,18 +74,22 @@ module RakeGitCrypt
|
|
60
74
|
.first_line.key_fingerprint
|
61
75
|
end
|
62
76
|
|
63
|
-
def add_gpg_user(gpg_user_id)
|
64
|
-
environment =
|
65
|
-
gpg_home_directory ? { GNUPGHOME: gpg_home_directory } : {}
|
77
|
+
def add_gpg_user(gpg_home_directory, gpg_user_id)
|
66
78
|
RubyGitCrypt.add_gpg_user(
|
67
79
|
{
|
68
|
-
|
69
|
-
|
80
|
+
gpg_user_id: gpg_user_id,
|
81
|
+
key_name: key_name,
|
82
|
+
no_commit: !commit,
|
83
|
+
trusted: trusted
|
70
84
|
},
|
71
|
-
{ environment:
|
85
|
+
{ environment: git_crypt_environment(gpg_home_directory) }
|
72
86
|
)
|
73
87
|
end
|
74
88
|
|
89
|
+
def git_crypt_environment(gpg_home_directory)
|
90
|
+
gpg_home_directory ? { GNUPGHOME: gpg_home_directory } : {}
|
91
|
+
end
|
92
|
+
|
75
93
|
def log_adding_by_id
|
76
94
|
$stdout.puts(
|
77
95
|
"Adding GPG user with ID: '#{gpg_user_id}' to git-crypt..."
|
@@ -79,7 +97,7 @@ module RakeGitCrypt
|
|
79
97
|
end
|
80
98
|
|
81
99
|
def log_adding_by_key_path
|
82
|
-
puts(
|
100
|
+
$stdout.puts(
|
83
101
|
"Adding GPG user with key at: '#{gpg_user_key_path}' to git-crypt..."
|
84
102
|
)
|
85
103
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rake_git_crypt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0.pre.
|
4
|
+
version: 0.1.0.pre.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- InfraBlocks Maintainers
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-01-
|
11
|
+
date: 2023-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colored2
|
@@ -278,6 +278,7 @@ files:
|
|
278
278
|
- bin/console
|
279
279
|
- bin/setup
|
280
280
|
- lib/rake_git_crypt.rb
|
281
|
+
- lib/rake_git_crypt/home.rb
|
281
282
|
- lib/rake_git_crypt/task_sets.rb
|
282
283
|
- lib/rake_git_crypt/tasks.rb
|
283
284
|
- lib/rake_git_crypt/tasks/add_user.rb
|