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

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: 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