rake_git_crypt 0.1.0.pre.13 → 0.1.0.pre.15

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: c79a14818908aa6aff28a9fbac914c51bca6bd66b4dd585aa2eb9bf572c990a2
4
- data.tar.gz: 59d3a64f1f1257a842b650f39029623f3ef25cddbb903b06f40cd322796d7031
3
+ metadata.gz: e426a2d4bc292264074ac8e12c0ac21ebdfd3c834de262bf8afd889f3365e66d
4
+ data.tar.gz: f043f33c2f71f991b54a972b1bb6683730f75c54bfaa1375c878253a8b81f2bd
5
5
  SHA512:
6
- metadata.gz: c3442a576db2d1db507a0aec982f8c25244568a99d0cfd9b01d6ac9411118b336ebb95785b3fd7b750acd3ef2dc854c8042e1d9b0a16e3bbe700fef7a11ae76f
7
- data.tar.gz: '08a4abbc29b0fab4e42ee3625e9287750c5003289e0121b3dacade64fb84b690e307b2d9aca55ab4db8822869d1babad41fd20592a4da9ec52b755c387b10e21'
6
+ metadata.gz: 263ca6021195915bceb150d3c3921377b2547a9b25850388e08766bc02d4037e126f3e27a4d402fc949d849a6ac82f9099e25555a938a2fc8cb735f518d4d85b
7
+ data.tar.gz: 2fac6b967672f0dfd2bc307b64591d85b998b4eccddb41fba867c23a88dce24f95e2b2911db412fd39a2f51ea69efc38e47b2ef8d6a031936af9be597033790a
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.13)
4
+ rake_git_crypt (0.1.0.pre.15)
5
5
  colored2 (~> 3.1)
6
6
  rake_factory (= 0.32.0.pre.2)
7
7
  ruby_git_crypt (= 0.1.0.pre.2)
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
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RakeGitCrypt
4
+ module Mixins
5
+ module Support
6
+ def task_by_name(task, name)
7
+ task.application.lookup(name, task.scope)
8
+ end
9
+
10
+ def task_defined?(task, name)
11
+ !task_by_name(task, name).nil?
12
+ end
13
+
14
+ def invoke_task_with_name(task, name, args)
15
+ raise_task_undefined(name) unless task_defined?(task, name)
16
+
17
+ task_by_name(task, name).invoke(*args)
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
26
+ end
27
+ end
28
+ end
@@ -2,9 +2,13 @@
2
2
 
3
3
  require 'rake_factory'
4
4
 
5
+ require_relative '../mixins/support'
6
+
5
7
  module RakeGitCrypt
6
8
  module Tasks
7
9
  class AddUsers < RakeFactory::Task
10
+ include Mixins::Support
11
+
8
12
  default_name :add_users
9
13
  default_description 'Add users to git-crypt.'
10
14
 
@@ -45,31 +49,29 @@ module RakeGitCrypt
45
49
  end
46
50
 
47
51
  def ensure_add_user_task_present(task, user_type)
48
- unless task_required?(user_type) && (
49
- task_name_missing?(user_type) ||
50
- !task_defined?(task, user_type))
52
+ unless add_user_task_required?(user_type) && (
53
+ add_user_task_name_missing?(user_type) ||
54
+ !add_user_task_defined?(task, user_type))
51
55
  return
52
56
  end
53
57
 
54
- if task_name_missing?(user_type)
58
+ if add_user_task_name_missing?(user_type)
55
59
  raise_add_user_task_name_missing(user_type)
56
60
  else
57
61
  raise_add_user_task_undefined(user_type)
58
62
  end
59
63
  end
60
64
 
61
- def task_name_missing?(user_type)
65
+ def add_user_task_name_missing?(user_type)
62
66
  send(:"add_user_by_#{user_type}_task_name").nil?
63
67
  end
64
68
 
65
- def task_required?(user_type)
69
+ def add_user_task_required?(user_type)
66
70
  gpg_user_details_present?(user_type)
67
71
  end
68
72
 
69
- def task_defined?(task, user_type)
70
- !task.application
71
- .lookup(send(:"add_user_by_#{user_type}_task_name"), task.scope)
72
- .nil?
73
+ def add_user_task_defined?(task, user_type)
74
+ task_defined?(task, send(:"add_user_by_#{user_type}_task_name"))
73
75
  end
74
76
 
75
77
  def gpg_user_details_present?(user_type)
@@ -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
@@ -0,0 +1,44 @@
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 Uninstall < RakeFactory::Task
11
+ include Mixins::Support
12
+
13
+ default_name :uninstall
14
+ default_description 'Uninstall git-crypt.'
15
+
16
+ parameter(:lock_task_name, default: :lock)
17
+ parameter(:delete_secrets_task_name)
18
+
19
+ action do |task, args|
20
+ puts('Uninstalling git-crypt...')
21
+ lock_git_crypt(task, args)
22
+ delete_git_crypt_directories
23
+ maybe_delete_secrets(task, args)
24
+ end
25
+
26
+ private
27
+
28
+ def lock_git_crypt(task, args)
29
+ invoke_task_with_name(task, lock_task_name, args)
30
+ end
31
+
32
+ def delete_git_crypt_directories
33
+ FileUtils.rm_rf('.git-crypt')
34
+ FileUtils.rm_rf('.git/git-crypt')
35
+ end
36
+
37
+ def maybe_delete_secrets(task, args)
38
+ return unless delete_secrets_task_name
39
+
40
+ invoke_task_with_name(task, delete_secrets_task_name, args)
41
+ end
42
+ end
43
+ end
44
+ end
@@ -9,12 +9,12 @@ module RakeGitCrypt
9
9
  default_name :unlock
10
10
  default_description 'Unlock git-crypt.'
11
11
 
12
- parameter :key_path
12
+ parameter :key_paths
13
13
 
14
14
  action do
15
15
  puts('Unlocking git-crypt...')
16
16
  RubyGitCrypt.unlock(
17
- key_path: key_path
17
+ key_files: key_paths
18
18
  )
19
19
  end
20
20
  end
@@ -1,9 +1,11 @@
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'
8
+ require_relative 'tasks/uninstall'
7
9
  require_relative 'tasks/unlock'
8
10
 
9
11
  module RakeGitCrypt
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RakeGitCrypt
4
- VERSION = '0.1.0.pre.13'
4
+ VERSION = '0.1.0.pre.15'
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.13
4
+ version: 0.1.0.pre.15
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-28 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
@@ -83,12 +83,15 @@ files:
83
83
  - bin/setup
84
84
  - lib/rake_git_crypt.rb
85
85
  - lib/rake_git_crypt/home.rb
86
+ - lib/rake_git_crypt/mixins/support.rb
86
87
  - lib/rake_git_crypt/task_sets.rb
87
88
  - lib/rake_git_crypt/tasks.rb
88
89
  - lib/rake_git_crypt/tasks/add_user.rb
89
90
  - lib/rake_git_crypt/tasks/add_users.rb
90
91
  - lib/rake_git_crypt/tasks/init.rb
92
+ - lib/rake_git_crypt/tasks/install.rb
91
93
  - lib/rake_git_crypt/tasks/lock.rb
94
+ - lib/rake_git_crypt/tasks/uninstall.rb
92
95
  - lib/rake_git_crypt/tasks/unlock.rb
93
96
  - lib/rake_git_crypt/version.rb
94
97
  - rake_git_crypt.gemspec