takelage 0.28.7 → 0.28.8

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: d13748db4d561a884f90dcf21e4f43296fcaec2377ebb602b0407139d6218986
4
- data.tar.gz: e0c2075cc8fab7ab3057477baaee7fe2aa3f4304c139b38f1ab6432f9adf4366
3
+ metadata.gz: 1d001b2320ee31a8a1418fa2148f2b57e188161a77462d743664ba65fee9f9c9
4
+ data.tar.gz: 1029b8f87e5a2ca62dabb569393b9882728555c36a3a474a8c4d8a07284aab00
5
5
  SHA512:
6
- metadata.gz: 1b7ac8428fa4c5f4278f58c9ae26a77656c967503d7a10c8bfe892aca274d32129cfb81a40a2434126940b52f0756a93a6c6c01a6a18ba21c98306f8eda1ab92
7
- data.tar.gz: ae774fe3212f1712097c6476f186e1cdff6ee63f043aeec7d4b29b4862e75ecf3c4251cac00ecb83677dbaf71e01dc7ebb202947f5c6a7a704792ac93865e4da
6
+ metadata.gz: 9edf2460fba247d5cca26952aba78c223c86b13a796dfc88e2cf586e910e3d2b451ac920d5ea1f597d1ba282b1a65c90e19d89e5e2bb2ded707916db908b4368
7
+ data.tar.gz: e6678614002f51c2e712aaa0a9a4578fb6ace913de6d6c0561728a21ae53f048140ef9bbe58439c1da9791b1a86f73bfaa957fe39ce45ff875f37d5f0c1b8df6
data/README.md CHANGED
@@ -106,7 +106,9 @@ tau [info status bar](features/cucumber/features/info/info.status.bar.feature) |
106
106
  tau [info status git](features/cucumber/features/info/info.status.git.feature) | Check git status
107
107
  tau [info status gopass](features/cucumber/features/info/info.status.gopass.feature) | Check gopass status
108
108
  tau [info status gpg](features/cucumber/features/info/info.status.gpg.feature) | Check gpg status
109
+ tau [info status mutagen](features/cucumber/features/info/info.status.mutagen.feature) | Check mutagen status
109
110
  tau [info status ssh](features/cucumber/features/info/info.status.ssh.feature) | Check ssh status
111
+ tau [mutagen check daemon](features/cucumber/features/mutagen/mutagen.check.daemon.feature)) | Check if mutagen host conenction is available
110
112
  tau [mutagen socket check](features/cucumber/features/mutagen/mutagen.socket.check.feature) [SOCKET] | Check if mutagen [SOCKET] exists
111
113
  tau [mutagen socket create](features/cucumber/features/mutagen/mutagen.socket.create.feature) [IN] [OUT] | Create a mutagen socket from [IN] to [OUT] of the container
112
114
  tau [mutagen socket list](features/cucumber/features/mutagen/mutagen.socket.list.feature) | List mutagen sockets
data/lib/takelage.rb CHANGED
@@ -44,6 +44,8 @@ require_relative 'takelage/bit/require/import'
44
44
  require_relative 'takelage/bit/require/cli'
45
45
  require_relative 'takelage/bit/cli'
46
46
  require_relative 'takelage/completion/cli'
47
+ require_relative 'takelage/mutagen/socket/create'
48
+ require_relative 'takelage/mutagen/socket/terminate'
47
49
  require_relative 'takelage/docker/check/daemon'
48
50
  require_relative 'takelage/docker/check/socat'
49
51
  require_relative 'takelage/docker/check/cli'
@@ -59,8 +61,6 @@ require_relative 'takelage/docker/image/tag/check'
59
61
  require_relative 'takelage/docker/image/tag/cli'
60
62
  require_relative 'takelage/docker/image/update'
61
63
  require_relative 'takelage/docker/image/cli'
62
- require_relative 'takelage/mutagen/socket/create'
63
- require_relative 'takelage/mutagen/socket/terminate'
64
64
  require_relative 'takelage/docker/container/check/existing'
65
65
  require_relative 'takelage/docker/container/check/network'
66
66
  require_relative 'takelage/docker/container/check/orphaned'
@@ -73,6 +73,12 @@ require_relative 'takelage/docker/container/clean'
73
73
  require_relative 'takelage/docker/container/prune'
74
74
  require_relative 'takelage/docker/container/cli'
75
75
  require_relative 'takelage/docker/cli'
76
+ require_relative 'takelage/mutagen/check/daemon'
77
+ require_relative 'takelage/mutagen/check/cli'
78
+ require_relative 'takelage/mutagen/socket/check'
79
+ require_relative 'takelage/mutagen/socket/list'
80
+ require_relative 'takelage/mutagen/socket/cli'
81
+ require_relative 'takelage/mutagen/cli'
76
82
  require_relative 'takelage/info/status/lib'
77
83
  require_relative 'takelage/info/status/git'
78
84
  require_relative 'takelage/info/status/gopass'
@@ -82,10 +88,6 @@ require_relative 'takelage/info/status/bar'
82
88
  require_relative 'takelage/info/status/cli'
83
89
  require_relative 'takelage/info/project/cli'
84
90
  require_relative 'takelage/info/cli'
85
- require_relative 'takelage/mutagen/socket/check'
86
- require_relative 'takelage/mutagen/socket/list'
87
- require_relative 'takelage/mutagen/socket/cli'
88
- require_relative 'takelage/mutagen/cli'
89
91
  require_relative 'takelage/self/config/cli'
90
92
  require_relative 'takelage/self/list'
91
93
  require_relative 'takelage/self/cli'
@@ -66,6 +66,7 @@ cmd_info_status_gopass_root_store: 'gopass config | grep "path" | cut -d " " -f
66
66
  cmd_info_status_gpg_agent: 'gpg-connect-agent /bye'
67
67
  cmd_info_status_gpg_keys: 'gpg --list-keys'
68
68
  cmd_info_status_ssh_keys: 'ssh-add -l'
69
+ cmd_mutagen_check_daemon_host_connection: 'mutagen forward list --label-selector="%{hostlabel}"'
69
70
  cmd_mutagen_forward_socket_create: 'mutagen forward create --name=%{socketname} --label=%{hostlabel} --label=%{takellabel} docker://%{username}@%{container}:unix:%{containersock} unix:%{hostsock}'
70
71
  cmd_mutagen_forward_socket_check: 'mutagen forward list %{socketname}'
71
72
  cmd_mutagen_forward_socket_terminate: 'mutagen forward terminate %{socketname}'
@@ -85,3 +86,5 @@ docker_user: 'takelage'
85
86
  git_main_branch: 'main'
86
87
  info_project_main: 'project.yml'
87
88
  info_project_private: 'private/project.yml'
89
+ mutagen_socket_path: '~/.mutagen/daemon/daemon.sock'
90
+ mutagen_socket_takelage_label: 'type=takelage-socket'
@@ -42,9 +42,10 @@ module Takelage
42
42
  @workdir = Dir.getwd
43
43
  @hostname = _docker_container_lib_hostname
44
44
  @hostlabel = "hostname=#{@hostname}"
45
- @takellabel = 'type=takelage-socket'
45
+ @takellabel = config.active['mutagen_socket_takelage_label']
46
46
  @socket_host = docker_socket_host
47
47
  @sockets = docker_socket_scheme
48
+ @mutagensock = config.active['mutagen_socket_path']
48
49
  end
49
50
  # rubocop:enable Metrics/MethodLength
50
51
  # rubocop:enable Metrics/AbcSize
@@ -11,7 +11,7 @@ module DockerContainerCommand
11
11
  docker_socket_start
12
12
  return false unless _docker_container_lib_create_net_and_ctr @hostname
13
13
 
14
- mutagen_socket_create '~/.mutagen/daemon/daemon.sock', '~/.mutagen/daemon/daemon.sock'
14
+ mutagen_socket_create @mutagensock, @mutagensock
15
15
 
16
16
  _docker_container_command_run_command @hostname, command
17
17
  end
@@ -10,7 +10,7 @@ module DockerContainerDaemon
10
10
 
11
11
  result = _docker_container_lib_create_net_and_ctr @hostname
12
12
 
13
- mutagen_socket_create '~/.mutagen/daemon/daemon.sock', '~/.mutagen/daemon/daemon.sock'
13
+ mutagen_socket_create @mutagensock, @mutagensock
14
14
 
15
15
  result
16
16
  end
@@ -12,7 +12,7 @@ module DockerContainerLogin
12
12
 
13
13
  return false unless _docker_container_lib_create_net_and_ctr @hostname
14
14
 
15
- mutagen_socket_create '~/.mutagen/daemon/daemon.sock', '~/.mutagen/daemon/daemon.sock'
15
+ mutagen_socket_create @mutagensock, @mutagensock
16
16
 
17
17
  run_and_exit _docker_container_login_enter_container @hostname
18
18
  end
@@ -6,7 +6,15 @@ module Takelage
6
6
  include LoggingModule
7
7
  include SystemModule
8
8
  include ConfigModule
9
+ include DockerCheckDaemon
10
+ include DockerCheckSocat
11
+ include DockerContainerCheckExisting
12
+ include DockerContainerCheckNetwork
13
+ include DockerContainerCommand
14
+ include DockerContainerLib
15
+ include DockerSocketLib
9
16
  include DockerSocketScheme
17
+ include DockerSocketStart
10
18
  include GitCheckWorkspace
11
19
  include InfoStatusLib
12
20
  include InfoStatusGit
@@ -14,6 +22,17 @@ module Takelage
14
22
  include InfoStatusGPG
15
23
  include InfoStatusSSH
16
24
  include InfoStatusBar
25
+ include MutagenCheckDaemon
26
+
27
+ # Initialize info status
28
+ def initialize(args = [], local_options = {}, configuration = {})
29
+ # initialize thor parent class
30
+ super args, local_options, configuration
31
+
32
+ inside = _docker_container_lib_check_matrjoschka
33
+ @hostname = inside ? ENV['HOSTNAME'] : _docker_container_lib_hostname
34
+ @hostlabel = "hostname=#{@hostname}"
35
+ end
17
36
 
18
37
  #
19
38
  # info status bar
@@ -63,6 +82,18 @@ module Takelage
63
82
  exit info_status_gpg
64
83
  end
65
84
 
85
+ #
86
+ # info status mutagen
87
+ #
88
+ desc 'mutagen', 'Check mutagen status info'
89
+ long_desc <<-LONGDESC.gsub("\n", "\x5")
90
+ Check mutagen status info
91
+ LONGDESC
92
+ # Check mutagen status info.
93
+ def mutagen
94
+ exit mutagen_check_daemon
95
+ end
96
+
66
97
  #
67
98
  # info status ssh
68
99
  #
@@ -85,7 +85,7 @@ module SystemModule
85
85
 
86
86
  # Check if file exists.
87
87
  def _file_exists?(file)
88
- unless File.exist? file
88
+ unless File.exist? File.expand_path(file)
89
89
  log.debug "File \"#{file}\" doesn't exist"
90
90
  return false
91
91
  end
@@ -95,7 +95,7 @@ module SystemModule
95
95
  # Read yaml file.
96
96
  def _file_read(file)
97
97
  begin
98
- @content_file = File.read file
98
+ @content_file = File.read File.expand_path(file)
99
99
  rescue SystemCallError
100
100
  log.debug "Unable to read file \"#{file}\""
101
101
  return false
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Takelage
4
+ # takelage mutagen check
5
+ class MutagenCheck < SubCommandBase
6
+ include LoggingModule
7
+ include SystemModule
8
+ include ConfigModule
9
+ include DockerCheckDaemon
10
+ include DockerCheckSocat
11
+ include DockerContainerCheckExisting
12
+ include DockerContainerCheckNetwork
13
+ include DockerContainerCommand
14
+ include DockerContainerLib
15
+ include DockerSocketLib
16
+ include DockerSocketScheme
17
+ include DockerSocketStart
18
+ include MutagenCheckDaemon
19
+
20
+ # Initialize mutagen check
21
+ def initialize(args = [], local_options = {}, configuration = {})
22
+ # initialize thor parent class
23
+ super args, local_options, configuration
24
+
25
+ inside = _docker_container_lib_check_matrjoschka
26
+ @hostname = inside ? ENV['HOSTNAME'] : _docker_container_lib_hostname
27
+ @hostlabel = "hostname=#{@hostname}"
28
+ end
29
+
30
+ #
31
+ # mutagen check daemon
32
+ #
33
+ desc 'daemon', 'Check if mutagen host conenction is available'
34
+ long_desc <<-LONGDESC.gsub("\n", "\x5")
35
+ Check if mutagen host conenction is available
36
+ LONGDESC
37
+ # Check if mutagen host conenction is available.
38
+ def daemon
39
+ exit mutagen_check_daemon
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ # takelage info status mutagen
4
+ module MutagenCheckDaemon
5
+ # Backend method for mutagen check daemon.
6
+ # @return [Boolean] is mutagen available?
7
+ # rubocop:disable Metrics/MethodLength
8
+ def mutagen_check_daemon
9
+ log.debug 'Check mutagen status'
10
+
11
+ unless _file_exists? config.active['mutagen_socket_path']
12
+ log.error 'mutagen socket is not available'
13
+ return false
14
+ end
15
+
16
+ unless _mutagen_check_daemon_host_connection
17
+ log.error 'mutagen host connection is not available'
18
+ return false
19
+ end
20
+
21
+ log.debug 'mutagen is available'
22
+ true
23
+ end
24
+ # rubocop:enable Metrics/MethodLength
25
+
26
+ private
27
+
28
+ # Check mutagen host connection
29
+ def _mutagen_check_daemon_host_connection
30
+ check_host_connection = format(
31
+ config.active['cmd_mutagen_check_daemon_host_connection'],
32
+ hostlabel: @hostlabel
33
+ )
34
+ host_connection = try check_host_connection
35
+ host_connection.exitstatus.zero?
36
+ end
37
+ end
@@ -3,6 +3,9 @@
3
3
  module Takelage
4
4
  # takelage git
5
5
  class Mutagen < SubCommandBase
6
+ desc 'check [COMMAND]', 'Check mutagen'
7
+ subcommand 'check', MutagenCheck
8
+
6
9
  desc 'socket [COMMAND]', 'Manage mutagen socket'
7
10
  subcommand 'socket', MutagenSocket
8
11
  end
@@ -20,7 +20,7 @@ module Takelage
20
20
  include MutagenSocketList
21
21
  include MutagenSocketTerminate
22
22
 
23
- # Initialize mtagen socket
23
+ # Initialize mutagen socket
24
24
  def initialize(args = [], local_options = {}, configuration = {})
25
25
  # initialize thor parent class
26
26
  super args, local_options, configuration
@@ -28,10 +28,15 @@ module Takelage
28
28
  @docker_repo = config.active['docker_repo']
29
29
  @username = ENV['USER'] || 'noname'
30
30
  @workdir = Dir.getwd
31
+
31
32
  inside = _docker_container_lib_check_matrjoschka
32
33
  @hostname = inside ? ENV['HOSTNAME'] : _docker_container_lib_hostname
34
+ # See DockerContainerLib::_docker_container_lib_hostname
35
+ @socketname = @hostname[-11..-1]
36
+
33
37
  @hostlabel = "hostname=#{@hostname}"
34
- @takellabel = 'type=takelage-socket'
38
+ @takellabel = config.active['mutagen_socket_takelage_label']
39
+
35
40
  @sockets = docker_socket_scheme
36
41
  end
37
42
 
@@ -4,18 +4,17 @@
4
4
  module MutagenSocketCreate
5
5
  # Backend method for mutagen socket create.
6
6
  def mutagen_socket_create(containersock, hostsock)
7
- socketname = @hostname[-11..-1]
8
- log.debug "Create the mutagen socket \"#{socketname}\" in the container" \
7
+ log.debug "Create the mutagen socket \"#{@socketname}\" in the container" \
9
8
  "at \"#{containersock}\" pointing to the host at \"#{hostsock}\""
10
9
 
11
- socket_created = _mutagen_socket_create_socket(socketname, containersock, hostsock)
10
+ socket_created = _mutagen_socket_create_socket(containersock, hostsock)
12
11
 
13
12
  unless socket_created.include? 'Created session'
14
- log.debug "Unable to create mutagen socket \"#{socketname}\""
13
+ log.debug "Unable to create mutagen socket \"#{@socketname}\""
15
14
  return false
16
15
  end
17
16
 
18
- log.debug "Created the mutagen socket \"#{socketname}\""
17
+ log.debug "Created the mutagen socket \"#{@socketname}\""
19
18
  true
20
19
  end
21
20
 
@@ -23,10 +22,10 @@ module MutagenSocketCreate
23
22
 
24
23
  # Get git branch.
25
24
  # rubocop:disable Metrics/MethodLength
26
- def _mutagen_socket_create_socket(socketname, containersock, hostsock)
25
+ def _mutagen_socket_create_socket(containersock, hostsock)
27
26
  cmd_create_socket = format(
28
27
  config.active['cmd_mutagen_forward_socket_create'],
29
- socketname: socketname,
28
+ socketname: @socketname,
30
29
  containersock: containersock,
31
30
  hostsock: hostsock,
32
31
  username: @username,
data/lib/takelage/version CHANGED
@@ -1 +1 @@
1
- 0.28.7
1
+ 0.28.8
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: takelage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.28.7
4
+ version: 0.28.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geospin
@@ -271,6 +271,8 @@ files:
271
271
  - lib/takelage/lib/project.rb
272
272
  - lib/takelage/lib/subcmd.rb
273
273
  - lib/takelage/lib/system.rb
274
+ - lib/takelage/mutagen/check/cli.rb
275
+ - lib/takelage/mutagen/check/daemon.rb
274
276
  - lib/takelage/mutagen/cli.rb
275
277
  - lib/takelage/mutagen/socket/check.rb
276
278
  - lib/takelage/mutagen/socket/cli.rb