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