rake_git_crypt 0.1.0.pre.14 → 0.1.0.pre.16

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 67d46cbdcafb550596764ed445eae72fc7a8e690643621c41042ea5eae5368de
4
- data.tar.gz: 86f379c9c2e690764078268b4203dbb6b610676b7ef1523f96aaa860aece6f24
3
+ metadata.gz: caaa2017705d66365774aa73e514d7337a8d6e88961520707aa2fbd5950f93ab
4
+ data.tar.gz: da842a211625edfc228dd8f5abf14ea1785f6bf49fedb93281b1dc182a04d1cc
5
5
  SHA512:
6
- metadata.gz: 18ef74b4cdc187ca7d72cd3feb5f492b448495cf72f5535a4c35ccec8824fbd95ef4cd36caa5abfee3d2100dc42ae6d51e03541afedc60f782c89f0367f2439f
7
- data.tar.gz: ccfe1faca75c66a6d715259796448aafb476a5fbf1ac3e4b710a86395fe473fd58961966d52b33c31be4d309caca68f6a39cbc6d83d55ee4a11fa821bad81cf8
6
+ metadata.gz: 4017fa057ae94518b7fe882e1fd532424cd236000ed79f61a712b56faf5fa21919c869114d2e7b982e9d82fa501d3f4babaa88716621e75f82db9e8beecfcb9f
7
+ data.tar.gz: dca95c4e1e6029544b28cfecfeeac994850df59f0a88e5159ec861c9d9f985b31f80b2f028506019878cea44f38b0a7c06b48d55db5acc6820f010072e7d53d3
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rake_git_crypt (0.1.0.pre.14)
4
+ rake_git_crypt (0.1.0.pre.16)
5
5
  colored2 (~> 3.1)
6
6
  rake_factory (= 0.32.0.pre.2)
7
7
  ruby_git_crypt (= 0.1.0.pre.2)
@@ -120,7 +120,7 @@ GEM
120
120
  simplecov-html (0.12.3)
121
121
  simplecov_json_formatter (0.1.4)
122
122
  sshkey (2.0.0)
123
- tzinfo (2.0.5)
123
+ tzinfo (2.0.6)
124
124
  concurrent-ruby (~> 1.0)
125
125
  unicode-display_width (2.4.2)
126
126
 
@@ -148,4 +148,4 @@ DEPENDENCIES
148
148
  simplecov
149
149
 
150
150
  BUNDLED WITH
151
- 2.4.5
151
+ 2.4.6
data/Rakefile CHANGED
@@ -57,6 +57,11 @@ namespace :secrets do
57
57
  keys:deploy:generate
58
58
  keys:gpg:generate
59
59
  ]
60
+
61
+ desc 'Delete all secrets.'
62
+ task :delete do
63
+ rm_rf 'config/secrets'
64
+ end
60
65
  end
61
66
 
62
67
  RuboCop::RakeTask.new
@@ -12,8 +12,17 @@ module RakeGitCrypt
12
12
  end
13
13
 
14
14
  def invoke_task_with_name(task, name, args)
15
+ raise_task_undefined(name) unless task_defined?(task, name)
16
+
15
17
  task_by_name(task, name).invoke(*args)
16
18
  end
19
+
20
+ def raise_task_undefined(name)
21
+ raise(
22
+ RakeFactory::DependencyTaskMissing,
23
+ "The task with name #{name} does not exist."
24
+ )
25
+ end
17
26
  end
18
27
  end
19
28
  end
@@ -6,6 +6,7 @@ require_relative '../mixins/support'
6
6
 
7
7
  module RakeGitCrypt
8
8
  module Tasks
9
+ # rubocop:disable Metrics/ClassLength
9
10
  class AddUsers < RakeFactory::Task
10
11
  include Mixins::Support
11
12
 
@@ -34,6 +35,30 @@ module RakeGitCrypt
34
35
 
35
36
  private
36
37
 
38
+ def gpg_user_key_paths
39
+ return nil if @gpg_user_key_paths.nil?
40
+
41
+ resolve_key_paths(@gpg_user_key_paths)
42
+ end
43
+
44
+ def resolve_key_paths(paths)
45
+ paths.inject([]) do |acc, key_path|
46
+ [*acc, *resolve_key_path(key_path)]
47
+ end
48
+ end
49
+
50
+ def resolve_key_path(path)
51
+ if File.file?(path)
52
+ [path]
53
+ elsif File.directory?(path)
54
+ resolve_key_paths(
55
+ Dir.entries(path).reject { |entry| %w[. ..].include?(entry) }
56
+ )
57
+ else
58
+ []
59
+ end
60
+ end
61
+
37
62
  def ensure_users_provided
38
63
  if gpg_user_details_present?(:key_path) ||
39
64
  gpg_user_details_present?(:id)
@@ -124,5 +149,6 @@ module RakeGitCrypt
124
149
  )
125
150
  end
126
151
  end
152
+ # rubocop:enable Metrics/ClassLength
127
153
  end
128
154
  end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rake_factory'
4
+ require 'ruby_git_crypt'
5
+
6
+ require_relative '../mixins/support'
7
+
8
+ module RakeGitCrypt
9
+ module Tasks
10
+ class Install < RakeFactory::Task
11
+ include Mixins::Support
12
+
13
+ default_name :install
14
+ default_description 'Install git-crypt.'
15
+
16
+ parameter(:init_task_name, default: :init)
17
+ parameter(:add_users_task_name, default: :add_users)
18
+
19
+ action do |task, args|
20
+ puts('Installing git-crypt...')
21
+ init_git_crypt(task, args)
22
+ add_users_to_git_crypt(task, args)
23
+ end
24
+
25
+ private
26
+
27
+ def init_git_crypt(task, args)
28
+ invoke_task_with_name(task, init_task_name, args)
29
+ end
30
+
31
+ def add_users_to_git_crypt(task, args)
32
+ invoke_task_with_name(task, add_users_task_name, args)
33
+ end
34
+ end
35
+ end
36
+ end
@@ -37,24 +37,8 @@ module RakeGitCrypt
37
37
  def maybe_delete_secrets(task, args)
38
38
  return unless delete_secrets_task_name
39
39
 
40
- unless delete_secrets_task_defined?(task)
41
- raise_delete_secrets_task_undefined
42
- end
43
-
44
40
  invoke_task_with_name(task, delete_secrets_task_name, args)
45
41
  end
46
-
47
- def delete_secrets_task_defined?(task)
48
- task_defined?(task, delete_secrets_task_name)
49
- end
50
-
51
- def raise_delete_secrets_task_undefined
52
- raise(
53
- RakeFactory::DependencyTaskMissing,
54
- 'The task with name defined in delete_secrets_task_name does not ' \
55
- 'exist.'
56
- )
57
- end
58
42
  end
59
43
  end
60
44
  end
@@ -1,11 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'tasks/init'
4
3
  require_relative 'tasks/add_user'
5
4
  require_relative 'tasks/add_users'
5
+ require_relative 'tasks/init'
6
+ require_relative 'tasks/install'
6
7
  require_relative 'tasks/lock'
7
- require_relative 'tasks/unlock'
8
8
  require_relative 'tasks/uninstall'
9
+ require_relative 'tasks/unlock'
9
10
 
10
11
  module RakeGitCrypt
11
12
  module Tasks
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RakeGitCrypt
4
- VERSION = '0.1.0.pre.14'
4
+ VERSION = '0.1.0.pre.16'
5
5
  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.14
4
+ version: 0.1.0.pre.16
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-29 00:00:00.000000000 Z
11
+ date: 2023-01-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colored2
@@ -89,6 +89,7 @@ files:
89
89
  - lib/rake_git_crypt/tasks/add_user.rb
90
90
  - lib/rake_git_crypt/tasks/add_users.rb
91
91
  - lib/rake_git_crypt/tasks/init.rb
92
+ - lib/rake_git_crypt/tasks/install.rb
92
93
  - lib/rake_git_crypt/tasks/lock.rb
93
94
  - lib/rake_git_crypt/tasks/uninstall.rb
94
95
  - lib/rake_git_crypt/tasks/unlock.rb