takelage 0.13.2 → 0.13.3

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.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -0
  3. data/bin/tau +1 -0
  4. data/lib/Thorfile +2 -0
  5. data/lib/takelage/bit/check/cli.rb +2 -2
  6. data/lib/takelage/bit/check/module.rb +21 -12
  7. data/lib/takelage/bit/cli.rb +1 -3
  8. data/lib/takelage/bit/clipboard/cli.rb +2 -4
  9. data/lib/takelage/bit/clipboard/module.rb +264 -194
  10. data/lib/takelage/bit/scope/cli.rb +2 -2
  11. data/lib/takelage/bit/scope/module.rb +64 -59
  12. data/lib/takelage/completion/cli.rb +2 -2
  13. data/lib/takelage/docker/check/cli.rb +2 -2
  14. data/lib/takelage/docker/check/module.rb +6 -8
  15. data/lib/takelage/docker/cli.rb +2 -3
  16. data/lib/takelage/docker/container/check/cli.rb +2 -2
  17. data/lib/takelage/docker/container/check/module.rb +28 -19
  18. data/lib/takelage/docker/container/cli.rb +13 -10
  19. data/lib/takelage/docker/container/module.rb +143 -110
  20. data/lib/takelage/docker/image/check/cli.rb +2 -3
  21. data/lib/takelage/docker/image/check/module.rb +26 -12
  22. data/lib/takelage/docker/image/cli.rb +3 -4
  23. data/lib/takelage/docker/image/module.rb +19 -14
  24. data/lib/takelage/docker/image/tag/check/cli.rb +2 -3
  25. data/lib/takelage/docker/image/tag/check/module.rb +33 -17
  26. data/lib/takelage/docker/image/tag/cli.rb +2 -3
  27. data/lib/takelage/docker/image/tag/latest/cli.rb +2 -3
  28. data/lib/takelage/docker/image/tag/latest/module.rb +6 -5
  29. data/lib/takelage/docker/image/tag/list/cli.rb +2 -3
  30. data/lib/takelage/docker/image/tag/list/module.rb +19 -16
  31. data/lib/takelage/docker/socket/cli.rb +2 -3
  32. data/lib/takelage/docker/socket/module.rb +137 -107
  33. data/lib/takelage/git/check/cli.rb +2 -2
  34. data/lib/takelage/git/check/module.rb +53 -35
  35. data/lib/takelage/git/cli.rb +2 -3
  36. data/lib/takelage/info/cli.rb +2 -3
  37. data/lib/takelage/info/project/cli.rb +2 -2
  38. data/lib/takelage/lib/config.rb +62 -45
  39. data/lib/takelage/lib/logging.rb +33 -16
  40. data/lib/takelage/lib/project.rb +43 -28
  41. data/lib/takelage/lib/subcmd.rb +2 -0
  42. data/lib/takelage/lib/system.rb +43 -27
  43. data/lib/takelage/self/cli.rb +2 -0
  44. data/lib/takelage/self/config/cli.rb +2 -0
  45. data/lib/takelage/self/module.rb +2 -0
  46. data/lib/takelage/version +1 -1
  47. data/lib/takelage.rb +6 -7
  48. metadata +1 -1
@@ -1,83 +1,58 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # takelage bit scope module
2
4
  module BitScopeModule
3
-
4
5
  # Backend method for bit scope add.
5
6
  def bit_scope_add(scope)
6
7
  log.debug "Adding bit remote scope \"#{scope}\" to local workspace"
7
8
 
8
- return false unless configured? %w(bit_ssh bit_remote)
9
+ return false unless configured? %w[bit_ssh bit_remote]
9
10
 
10
- unless bit_check_workspace
11
- log.error 'No bit workspace'
12
- return false
13
- end
14
-
15
- if git_check_workspace
16
- unless git_check_master
17
- log.error 'Not on git master branch'
18
- return false
19
- end
20
- end
11
+ return false unless _bit_scope_add_workspace_ready?
21
12
 
22
13
  # check if bit remote scope exists
23
- scope_list = bit_scope_list
24
- log.debug scope_list
25
- unless scope_list.include? scope
14
+ unless bit_scope_list.include? scope
26
15
  log.error "The bit remote bit scope \"#{scope}\" doesn't exist"
27
16
  return false
28
17
  end
29
18
 
30
- # get bit remote from active config
31
- bit_remote =
32
- config.active['bit_remote']
33
-
34
- # prepare scope add command
35
- cmd_bit_scope_add = "bit remote add #{bit_remote}/#{scope}"
36
- run cmd_bit_scope_add
19
+ run "bit remote add #{config.active['bit_remote']}/#{scope}"
37
20
 
38
21
  log.info "Added bit remote scope \"#{scope}\" to local bit workspace"
39
22
  end
40
23
 
41
24
  # Backend method for bit scope inbit.
42
25
  def bit_scope_inbit
43
- log.debug "Logging in to bit remote server"
44
-
45
- return false unless configured? %w(bit_ssh)
26
+ log.debug 'Logging in to bit remote server'
46
27
 
47
- cmd_bit_scope_login =
48
- config.active['bit_ssh']
28
+ return false unless configured? %w[bit_ssh]
49
29
 
50
- run_and_exit cmd_bit_scope_login
30
+ run_and_exit config.active['bit_ssh']
51
31
  end
52
32
 
53
33
  # Backend method for bit scope list.
54
34
  # @return [String] list of bit scopes
55
35
  def bit_scope_list
56
- log.debug "Listing bit remote scopes"
36
+ log.debug 'Listing bit remote scopes'
57
37
 
58
- return false unless configured? %w(bit_ssh bit_remote)
38
+ return false unless configured? %w[bit_ssh bit_remote]
59
39
 
60
40
  # get ssh command from active config
61
41
  cmd_bit_ssh =
62
- config.active['bit_ssh']
42
+ config.active['bit_ssh']
63
43
 
64
- # prepare scope list command
65
- root =
66
- config.active['bit_root']
44
+ root = config.active['bit_root']
67
45
 
68
- cmd_bit_scope_list =
69
- config.active['cmd_bit_scope_list_find_scopes'] % {
70
- root: root
71
- }
46
+ cmd_bit_scope_list = _bit_scope_list_cmd root
72
47
 
73
48
  # run ssh command with scope list command
74
49
  scope_list = run "#{cmd_bit_ssh} '#{cmd_bit_scope_list}'"
75
50
 
76
51
  # remove bit remote root directory from results
77
- scope_list.gsub!(/#{root}\/*/, '')
52
+ scope_list.gsub!(%r{#{root}/*}, '')
78
53
 
79
54
  # remove /scope.json from results
80
- scope_list.gsub!(/\/scope.json/, '')
55
+ scope_list.gsub!(%r{/scope.json}, '')
81
56
 
82
57
  scope_list
83
58
  end
@@ -87,31 +62,61 @@ module BitScopeModule
87
62
  def bit_scope_new(scope)
88
63
  log.debug "Creating new bit remote scope \"#{scope}\""
89
64
 
90
- return false unless configured? %w(bit_ssh bit_remote)
65
+ return false unless configured? %w[bit_ssh bit_remote]
91
66
 
92
- # check if bit remote scope already exists
93
- scope_list = bit_scope_list
94
- if scope_list.include? scope
95
- log.error "The remote bit scope \"#{scope}\" already exists"
67
+ return false if _bit_scope_exists? scope
68
+
69
+ cmd_bit_ssh = config.active['bit_ssh']
70
+
71
+ cmd_bit_scope_new = _bit_scope_new_cmd scope
72
+
73
+ run "#{cmd_bit_ssh} '#{cmd_bit_scope_new}'"
74
+
75
+ log.info "Created new bit remote scope \"#{scope}\""
76
+ end
77
+
78
+ private
79
+
80
+ # Check if workspace ready for bit scope add.
81
+ def _bit_scope_add_workspace_ready?
82
+ unless bit_check_workspace
83
+ log.error 'No bit workspace'
96
84
  return false
97
85
  end
98
86
 
99
- # get ssh command from active config
100
- cmd_bit_ssh =
101
- config.active['bit_ssh']
87
+ return true unless git_check_workspace
102
88
 
103
- # prepare scope list command
104
- root =
105
- config.active['bit_root']
89
+ return true if git_check_master
106
90
 
107
- cmd_bit_scope_new =
108
- config.active['cmd_bit_scope_new_bit_init'] % {
109
- scope: scope, root: root
110
- }
91
+ log.error 'Not on git master branch'
92
+ false
93
+ end
111
94
 
112
- # run ssh command with scope new command
113
- run "#{cmd_bit_ssh} '#{cmd_bit_scope_new}'"
95
+ # Prepare bit scope list command.
96
+ def _bit_scope_list_cmd(root)
97
+ format(
98
+ config.active['cmd_bit_scope_list_find_scopes'],
99
+ root: root
100
+ )
101
+ end
114
102
 
115
- log.info "Created new bit remote scope \"#{scope}\""
103
+ # Check if bit scope already exists.
104
+ def _bit_scope_exists?(scope)
105
+ scope_list = bit_scope_list
106
+ return false unless scope_list.include? scope
107
+
108
+ log.error "The remote bit scope \"#{scope}\" already exists"
109
+ false
110
+ end
111
+
112
+ # Prepare bit scope new command.
113
+ def _bit_scope_new_cmd(scope)
114
+ root = config.active['bit_root']
115
+
116
+ format(
117
+ config.active['cmd_bit_scope_new_bit_init'],
118
+ scope: scope,
119
+ root: root
120
+ )
116
121
  end
117
122
  end
@@ -1,8 +1,8 @@
1
- module Takelage
1
+ # frozen_string_literal: true
2
2
 
3
+ module Takelage
3
4
  # takelage completion
4
5
  class Completion < SubCommandBase
5
-
6
6
  include LoggingModule
7
7
 
8
8
  desc 'bash', 'Print bash completion code'
@@ -1,8 +1,8 @@
1
- module Takelage
1
+ # frozen_string_literal: true
2
2
 
3
+ module Takelage
3
4
  # takelage docker check
4
5
  class DockerCheck < SubCommandBase
5
-
6
6
  include LoggingModule
7
7
  include SystemModule
8
8
  include ConfigModule
@@ -1,24 +1,22 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # takelage docker check module
2
4
  module DockerCheckModule
3
-
4
5
  # Backend method for docker check running.
5
6
  # @return [Boolean] is the docker daemon running?
6
7
  def docker_check_running
7
8
  return true if @docker_daemon_running
8
9
 
9
- log.debug "Check if the docker daemon is running"
10
-
11
- cmd_docker_info =
12
- config.active['cmd_docker_check_running_docker_info']
10
+ log.debug 'Check if the docker daemon is running'
13
11
 
14
- status = try cmd_docker_info
12
+ status = try config.active['cmd_docker_check_running_docker_info']
15
13
 
16
14
  unless status.exitstatus.zero?
17
- log.error "The docker daemon is not running"
15
+ log.error 'The docker daemon is not running'
18
16
  return false
19
17
  end
20
18
 
21
- log.debug "The docker daemon is running"
19
+ log.debug 'The docker daemon is running'
22
20
  @docker_daemon_running = true
23
21
  true
24
22
  end
@@ -1,8 +1,8 @@
1
- module Takelage
1
+ # frozen_string_literal: true
2
2
 
3
+ module Takelage
3
4
  # takelage docker
4
5
  class Docker < SubCommandBase
5
-
6
6
  desc 'check [COMMAND]', 'Check docker'
7
7
  subcommand 'check', DockerCheck
8
8
 
@@ -14,6 +14,5 @@ module Takelage
14
14
 
15
15
  desc 'socket [COMMAND]', 'Handle sockets for docker containers'
16
16
  subcommand 'socket', DockerSocket
17
-
18
17
  end
19
18
  end
@@ -1,8 +1,8 @@
1
- module Takelage
1
+ # frozen_string_literal: true
2
2
 
3
+ module Takelage
3
4
  # takelage docker container check
4
5
  class DockerContainerCheck < SubCommandBase
5
-
6
6
  include LoggingModule
7
7
  include SystemModule
8
8
  include ConfigModule
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # takelage docker container check module
2
4
  module DockerContainerCheckModule
3
-
4
5
  # Backend method for docker container check existing.
5
6
  # @return [Boolean] is container existing?
6
7
  def docker_container_check_existing(container)
@@ -8,12 +9,7 @@ module DockerContainerCheckModule
8
9
 
9
10
  return false unless docker_check_running
10
11
 
11
- cmd_docker_existing =
12
- config.active['cmd_docker_container_check_existing_docker_ps'] % {
13
- container: container
14
- }
15
-
16
- stdout_str = run cmd_docker_existing
12
+ stdout_str = run _docker_container_cmd_check_existing container
17
13
 
18
14
  if stdout_str.to_s.strip.empty?
19
15
  log.debug "Container \"#{container}\" is not existing"
@@ -31,12 +27,7 @@ module DockerContainerCheckModule
31
27
 
32
28
  return false unless docker_check_running
33
29
 
34
- cmd_docker_network =
35
- config.active['cmd_docker_container_check_network_docker_network'] % {
36
- network: network
37
- }
38
-
39
- stdout_str = run cmd_docker_network
30
+ stdout_str = run _docker_container_cmd_check_network network
40
31
 
41
32
  if stdout_str.to_s.strip.empty?
42
33
  log.debug "Network \"#{network}\" is not existing"
@@ -54,12 +45,7 @@ module DockerContainerCheckModule
54
45
 
55
46
  return false unless docker_check_running
56
47
 
57
- cmd_docker_orphaned =
58
- config.active['cmd_docker_container_check_orphaned_docker_exec'] % {
59
- container: container
60
- }
61
-
62
- stdout_str = run cmd_docker_orphaned
48
+ stdout_str = run _docker_container_cmd_check_orphaned container
63
49
 
64
50
  if stdout_str.include? '/loginpoint.py'
65
51
  log.debug "Container \"#{container}\" isn't orphaned"
@@ -69,4 +55,27 @@ module DockerContainerCheckModule
69
55
  log.debug "Container \"#{container}\" is orphaned"
70
56
  true
71
57
  end
58
+
59
+ private
60
+
61
+ def _docker_container_cmd_check_existing(container)
62
+ format(
63
+ config.active['cmd_docker_container_check_existing_docker_ps'],
64
+ container: container
65
+ )
66
+ end
67
+
68
+ def _docker_container_cmd_check_network(network)
69
+ format(
70
+ config.active['cmd_docker_container_check_network_docker_network'],
71
+ network: network
72
+ )
73
+ end
74
+
75
+ def _docker_container_cmd_check_orphaned(container)
76
+ format(
77
+ config.active['cmd_docker_container_check_orphaned_docker_exec'],
78
+ container: container
79
+ )
80
+ end
72
81
  end
@@ -1,8 +1,8 @@
1
- module Takelage
1
+ # frozen_string_literal: true
2
2
 
3
+ module Takelage
3
4
  # takelage docker container
4
5
  class DockerContainer < SubCommandBase
5
-
6
6
  include LoggingModule
7
7
  include SystemModule
8
8
  include ConfigModule
@@ -16,8 +16,9 @@ module Takelage
16
16
  include DockerSocketModule
17
17
 
18
18
  # Initialize docker container
19
- def initialize(args=[], local_options={}, configuration={})
20
-
19
+ # rubocop:disable Metrics/MethodLength
20
+ # rubocop:disable Metrics/AbcSize
21
+ def initialize(args = [], local_options = {}, configuration = {})
21
22
  # initialize thor parent class
22
23
  super args, local_options, configuration
23
24
 
@@ -38,11 +39,11 @@ module Takelage
38
39
  @gpg_agent_port = config.active['docker_socket_gpg_agent_port']
39
40
  @gpg_ssh_agent_port = config.active['docker_socket_gpg_ssh_agent_port']
40
41
 
41
- @username = ENV['USER'] ? ENV['USER'] : 'username'
42
+ @username = ENV['USER'] || 'username'
42
43
  @gid = Etc.getpwnam(@username).gid
43
44
  @uid = Etc.getpwnam(@username).uid
44
45
 
45
- @homedir = ENV['HOME'] ? ENV['HOME'] : '/tmp'
46
+ @homedir = ENV['HOME'] || '/tmp'
46
47
  @workdir = Dir.getwd
47
48
  @hostname = "#{@docker_repo}_#{File.basename(@workdir)}"
48
49
 
@@ -51,6 +52,8 @@ module Takelage
51
52
  @socket_host = docker_socket_host
52
53
  @sockets = docker_socket_scheme
53
54
  end
55
+ # rubocop:enable Metrics/AbcSize
56
+ # rubocop:enable Metrics/MethodLength
54
57
 
55
58
  desc 'check [COMMAND]', 'Check docker container'
56
59
  subcommand 'check', DockerContainerCheck
@@ -71,10 +74,10 @@ module Takelage
71
74
  # docker container login
72
75
  #
73
76
  option :development,
74
- :aliases => 'd',
75
- :type => :boolean,
76
- :default => false,
77
- :desc => 'Log in to docker container in debug mode'
77
+ aliases: 'd',
78
+ type: :boolean,
79
+ default: false,
80
+ desc: 'Log in to docker container in debug mode'
78
81
  desc 'login', 'Log in to latest local docker container'
79
82
  long_desc <<-LONGDESC.gsub("\n", "\x5")
80
83
  Log in to latest local docker container