rake_git_crypt 0.1.0.pre.13 → 0.1.0.pre.14

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: 67d46cbdcafb550596764ed445eae72fc7a8e690643621c41042ea5eae5368de
4
+ data.tar.gz: 86f379c9c2e690764078268b4203dbb6b610676b7ef1523f96aaa860aece6f24
5
5
  SHA512:
6
- metadata.gz: c3442a576db2d1db507a0aec982f8c25244568a99d0cfd9b01d6ac9411118b336ebb95785b3fd7b750acd3ef2dc854c8042e1d9b0a16e3bbe700fef7a11ae76f
7
- data.tar.gz: '08a4abbc29b0fab4e42ee3625e9287750c5003289e0121b3dacade64fb84b690e307b2d9aca55ab4db8822869d1babad41fd20592a4da9ec52b755c387b10e21'
6
+ metadata.gz: 18ef74b4cdc187ca7d72cd3feb5f492b448495cf72f5535a4c35ccec8824fbd95ef4cd36caa5abfee3d2100dc42ae6d51e03541afedc60f782c89f0367f2439f
7
+ data.tar.gz: ccfe1faca75c66a6d715259796448aafb476a5fbf1ac3e4b710a86395fe473fd58961966d52b33c31be4d309caca68f6a39cbc6d83d55ee4a11fa821bad81cf8
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.14)
5
5
  colored2 (~> 3.1)
6
6
  rake_factory (= 0.32.0.pre.2)
7
7
  ruby_git_crypt (= 0.1.0.pre.2)
@@ -0,0 +1,19 @@
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
+ task_by_name(task, name).invoke(*args)
16
+ end
17
+ end
18
+ end
19
+ 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,60 @@
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
+ unless delete_secrets_task_defined?(task)
41
+ raise_delete_secrets_task_undefined
42
+ end
43
+
44
+ invoke_task_with_name(task, delete_secrets_task_name, args)
45
+ 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
+ end
59
+ end
60
+ 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
@@ -5,6 +5,7 @@ require_relative 'tasks/add_user'
5
5
  require_relative 'tasks/add_users'
6
6
  require_relative 'tasks/lock'
7
7
  require_relative 'tasks/unlock'
8
+ require_relative 'tasks/uninstall'
8
9
 
9
10
  module RakeGitCrypt
10
11
  module Tasks
@@ -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.14'
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.14
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-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colored2
@@ -83,12 +83,14 @@ 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
91
92
  - lib/rake_git_crypt/tasks/lock.rb
93
+ - lib/rake_git_crypt/tasks/uninstall.rb
92
94
  - lib/rake_git_crypt/tasks/unlock.rb
93
95
  - lib/rake_git_crypt/version.rb
94
96
  - rake_git_crypt.gemspec