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 +4 -4
- data/README.md +2 -0
- data/lib/takelage.rb +8 -6
- data/lib/takelage/default.yml +3 -0
- data/lib/takelage/docker/container/cli.rb +2 -1
- data/lib/takelage/docker/container/command.rb +1 -1
- data/lib/takelage/docker/container/daemon.rb +1 -1
- data/lib/takelage/docker/container/login.rb +1 -1
- data/lib/takelage/info/status/cli.rb +31 -0
- data/lib/takelage/lib/system.rb +2 -2
- data/lib/takelage/mutagen/check/cli.rb +42 -0
- data/lib/takelage/mutagen/check/daemon.rb +37 -0
- data/lib/takelage/mutagen/cli.rb +3 -0
- data/lib/takelage/mutagen/socket/cli.rb +7 -2
- data/lib/takelage/mutagen/socket/create.rb +6 -7
- data/lib/takelage/version +1 -1
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1d001b2320ee31a8a1418fa2148f2b57e188161a77462d743664ba65fee9f9c9
|
4
|
+
data.tar.gz: 1029b8f87e5a2ca62dabb569393b9882728555c36a3a474a8c4d8a07284aab00
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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'
|
data/lib/takelage/default.yml
CHANGED
@@ -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 = '
|
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
|
14
|
+
mutagen_socket_create @mutagensock, @mutagensock
|
15
15
|
|
16
16
|
_docker_container_command_run_command @hostname, command
|
17
17
|
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
|
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
|
#
|
data/lib/takelage/lib/system.rb
CHANGED
@@ -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
|
data/lib/takelage/mutagen/cli.rb
CHANGED
@@ -20,7 +20,7 @@ module Takelage
|
|
20
20
|
include MutagenSocketList
|
21
21
|
include MutagenSocketTerminate
|
22
22
|
|
23
|
-
# Initialize
|
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 = '
|
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
|
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(
|
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(
|
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.
|
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.
|
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
|