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

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