takelage 0.28.7 → 0.28.8

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