takelage 0.27.1 → 0.28.5
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 +9 -5
- data/lib/takelage.rb +9 -0
- data/lib/takelage/default.yml +5 -0
- data/lib/takelage/docker/container/clean.rb +1 -0
- data/lib/takelage/docker/container/cli.rb +6 -0
- data/lib/takelage/docker/container/command.rb +2 -0
- data/lib/takelage/docker/container/daemon.rb +5 -1
- data/lib/takelage/docker/container/lib.rb +6 -2
- data/lib/takelage/docker/container/login.rb +3 -0
- data/lib/takelage/docker/container/prune.rb +1 -0
- data/lib/takelage/lib/system.rb +2 -1
- data/lib/takelage/mutagen/cli.rb +9 -0
- data/lib/takelage/mutagen/socket/check.rb +31 -0
- data/lib/takelage/mutagen/socket/cli.rb +89 -0
- data/lib/takelage/mutagen/socket/create.rb +40 -0
- data/lib/takelage/mutagen/socket/list.rb +31 -0
- data/lib/takelage/mutagen/socket/terminate.rb +33 -0
- data/lib/takelage/version +1 -1
- metadata +7 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c9cbafaa5bcc3f8d74cf010208562a6a117e2051878031c723591ab3b11ec382
|
4
|
+
data.tar.gz: '087322623aab1f24da511744d2e5f28377077593bc48e10c433ac7f8406c413b'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5998e3c792f0173950380450329100d039802219b48d7b1d88f07985a3df6f3510f30943a7becbd78a966837a93a0927ae30cc8e32b940e785952b10094e7708
|
7
|
+
data.tar.gz: 8ec3aa7a7fb9737915ee4cbbeb541483aa2cb97871423f415df66213675fc86d7ba24c45bc53d4b666360397e5265f48a896bb9506aa127ab9470e4f98fb8af5
|
data/README.md
CHANGED
@@ -102,11 +102,15 @@ tau [info project active](features/cucumber/features/info/info.project.active.fe
|
|
102
102
|
tau [info project dir](features/cucumber/features/info/info.project.dir.feature) | Print project root directory
|
103
103
|
tau [info project main](features/cucumber/features/info/info.project.main.feature) | Print main project info
|
104
104
|
tau [info project private](features/cucumber/features/info/info.project.private.feature) | Print private project info
|
105
|
-
tau [info status
|
106
|
-
tau [info status
|
107
|
-
tau [info status
|
108
|
-
tau [info status
|
109
|
-
tau [info status ssh](features/cucumber/features/info/info.status.ssh.feature) | Check ssh status
|
105
|
+
tau [info status bar](features/cucumber/features/info/info.status.bar.feature) | Print status bar
|
106
|
+
tau [info status git](features/cucumber/features/info/info.status.git.feature) | Check git status
|
107
|
+
tau [info status gopass](features/cucumber/features/info/info.status.gopass.feature) | Check gopass status
|
108
|
+
tau [info status gpg](features/cucumber/features/info/info.status.gpg.feature) | Check gpg status
|
109
|
+
tau [info status ssh](features/cucumber/features/info/info.status.ssh.feature) | Check ssh status
|
110
|
+
tau [mutagen socket check](features/cucumber/features/mutagen/mutagen.socket.check.feature) [SOCKET] | Check if mutagen [SOCKET] exists
|
111
|
+
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
|
+
tau [mutagen socket list](features/cucumber/features/mutagen/mutagen.socket.list.feature) | List mutagen sockets
|
113
|
+
tau [mutagen socket terminate](features/cucumber/features/mutagen/mutagen.socket.terminate.feature) | Terminate a mutagen socket
|
110
114
|
tau [self config active](features/cucumber/features/self/self.config.active.feature) | Print active takelage configuration
|
111
115
|
tau [self config default](features/cucumber/features/self/self.config.default.feature) | Print takelage default configuration
|
112
116
|
tau [self config home](features/cucumber/features/self/self.config.home.feature) | Print takelage home config file configuration
|
data/lib/takelage.rb
CHANGED
@@ -59,6 +59,8 @@ require_relative 'takelage/docker/image/tag/check'
|
|
59
59
|
require_relative 'takelage/docker/image/tag/cli'
|
60
60
|
require_relative 'takelage/docker/image/update'
|
61
61
|
require_relative 'takelage/docker/image/cli'
|
62
|
+
require_relative 'takelage/mutagen/socket/create'
|
63
|
+
require_relative 'takelage/mutagen/socket/terminate'
|
62
64
|
require_relative 'takelage/docker/container/check/existing'
|
63
65
|
require_relative 'takelage/docker/container/check/network'
|
64
66
|
require_relative 'takelage/docker/container/check/orphaned'
|
@@ -80,6 +82,10 @@ require_relative 'takelage/info/status/bar'
|
|
80
82
|
require_relative 'takelage/info/status/cli'
|
81
83
|
require_relative 'takelage/info/project/cli'
|
82
84
|
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'
|
83
89
|
require_relative 'takelage/self/config/cli'
|
84
90
|
require_relative 'takelage/self/list'
|
85
91
|
require_relative 'takelage/self/cli'
|
@@ -143,6 +149,9 @@ module Takelage
|
|
143
149
|
desc 'info [COMMAND] ', 'Get information'
|
144
150
|
subcommand 'info', Info
|
145
151
|
|
152
|
+
desc 'mutagen [COMMAND] ', 'Manage mutagen'
|
153
|
+
subcommand 'mutagen', Mutagen
|
154
|
+
|
146
155
|
desc 'self [COMMAND] ', 'Manage takelage tools'
|
147
156
|
subcommand 'self', Self
|
148
157
|
|
data/lib/takelage/default.yml
CHANGED
@@ -66,6 +66,11 @@ 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_forward_socket_create: 'mutagen forward create --name=%{socketname} --label=%{hostlabel} --label=%{takellabel} docker://%{username}@%{container}:unix:%{containersock} unix:%{hostsock}'
|
70
|
+
cmd_mutagen_forward_socket_check: 'mutagen forward list %{socketname}'
|
71
|
+
cmd_mutagen_forward_socket_terminate: 'mutagen forward terminate %{socketname}'
|
72
|
+
cmd_mutagen_forward_socket_remove: 'rm -f ~/.mutagen/daemon/*'
|
73
|
+
cmd_mutagen_forward_socket_list: 'mutagen forward list --label-selector="%{takellabel}"'
|
69
74
|
docker_debug: 'ansible/roles/takel-takelage/files/takelscripts'
|
70
75
|
docker_entrypoint_extra: '.config/gcloud'
|
71
76
|
docker_entrypoint_options: ''
|
@@ -24,9 +24,12 @@ module Takelage
|
|
24
24
|
include DockerSocketHost
|
25
25
|
include DockerSocketScheme
|
26
26
|
include DockerSocketStart
|
27
|
+
include MutagenSocketCreate
|
28
|
+
include MutagenSocketTerminate
|
27
29
|
|
28
30
|
# Initialize docker container
|
29
31
|
# rubocop:disable Metrics/AbcSize
|
32
|
+
# rubocop:disable Metrics/MethodLength
|
30
33
|
def initialize(args = [], local_options = {}, configuration = {})
|
31
34
|
# initialize thor parent class
|
32
35
|
super args, local_options, configuration
|
@@ -38,9 +41,12 @@ module Takelage
|
|
38
41
|
@username = ENV['USER'] || 'noname'
|
39
42
|
@workdir = Dir.getwd
|
40
43
|
@hostname = _docker_container_lib_hostname
|
44
|
+
@hostlabel = "hostname=#{@hostname}"
|
45
|
+
@takellabel = 'type=takelage-socket'
|
41
46
|
@socket_host = docker_socket_host
|
42
47
|
@sockets = docker_socket_scheme
|
43
48
|
end
|
49
|
+
# rubocop:enable Metrics/MethodLength
|
44
50
|
# rubocop:enable Metrics/AbcSize
|
45
51
|
|
46
52
|
desc 'check [COMMAND]', 'Check docker container'
|
@@ -11,6 +11,8 @@ 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'
|
15
|
+
|
14
16
|
_docker_container_command_run_command @hostname, command
|
15
17
|
end
|
16
18
|
|
@@ -8,6 +8,10 @@ module DockerContainerDaemon
|
|
8
8
|
|
9
9
|
return false unless docker_check_daemon
|
10
10
|
|
11
|
-
_docker_container_lib_create_net_and_ctr @hostname
|
11
|
+
result = _docker_container_lib_create_net_and_ctr @hostname
|
12
|
+
|
13
|
+
mutagen_socket_create '~/.mutagen/daemon/daemon.sock', '~/.mutagen/daemon/daemon.sock'
|
14
|
+
|
15
|
+
result
|
12
16
|
end
|
13
17
|
end
|
@@ -16,7 +16,10 @@ module DockerContainerLib
|
|
16
16
|
|
17
17
|
# Create docker container and network.
|
18
18
|
def _docker_container_lib_create_net_and_ctr(name)
|
19
|
-
|
19
|
+
if _docker_container_lib_check_matrjoschka
|
20
|
+
log.error 'You cannot log in to takelage from within takelage'
|
21
|
+
return false
|
22
|
+
end
|
20
23
|
|
21
24
|
unless docker_container_check_network name
|
22
25
|
_docker_container_lib_create_network name
|
@@ -108,6 +111,7 @@ module DockerContainerLib
|
|
108
111
|
|
109
112
|
try cmd_docker_create
|
110
113
|
end
|
114
|
+
|
111
115
|
# rubocop:enable Metrics/AbcSize
|
112
116
|
# rubocop:enable Metrics/MethodLength
|
113
117
|
|
@@ -117,7 +121,7 @@ module DockerContainerLib
|
|
117
121
|
|
118
122
|
return false unless ENV.keys.include? 'TAKELAGE_PROJECT_BASE_DIR'
|
119
123
|
|
120
|
-
log.
|
124
|
+
log.debug 'We are already inside a takelage container'
|
121
125
|
|
122
126
|
# wait or the github workflow will fail
|
123
127
|
sleep 1
|
@@ -9,8 +9,11 @@ module DockerContainerLogin
|
|
9
9
|
return false unless docker_check_daemon
|
10
10
|
|
11
11
|
docker_socket_start
|
12
|
+
|
12
13
|
return false unless _docker_container_lib_create_net_and_ctr @hostname
|
13
14
|
|
15
|
+
mutagen_socket_create '~/.mutagen/daemon/daemon.sock', '~/.mutagen/daemon/daemon.sock'
|
16
|
+
|
14
17
|
run_and_exit _docker_container_login_enter_container @hostname
|
15
18
|
end
|
16
19
|
|
@@ -23,6 +23,7 @@ module DockerContainerPrune
|
|
23
23
|
|
24
24
|
name = _docker_container_lib_get_container_name_by_id container
|
25
25
|
_docker_container_lib_stop_container container
|
26
|
+
mutagen_socket_terminate "hostname=#{container}"
|
26
27
|
networks << name unless networks.include? name
|
27
28
|
end
|
28
29
|
networks
|
data/lib/takelage/lib/system.rb
CHANGED
@@ -51,8 +51,9 @@ module SystemModule
|
|
51
51
|
# @return [String] stdout of command
|
52
52
|
def run(command)
|
53
53
|
log.debug "Running command \"#{command}\""
|
54
|
-
stdout_str, = Open3.capture3 command
|
54
|
+
stdout_str, stderr_str = Open3.capture3 command
|
55
55
|
log.debug "Command \"#{command}\" has stdout:\n\"\"\"\n#{stdout_str}\"\"\""
|
56
|
+
log.debug "Command \"#{command}\" has stderr:\n\"\"\"\n#{stderr_str}\"\"\""
|
56
57
|
stdout_str
|
57
58
|
end
|
58
59
|
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# takelage mutagen socket check
|
4
|
+
module MutagenSocketCheck
|
5
|
+
# Backend method for mutagen socket check.
|
6
|
+
# @return [Boolean] Does a mutagen socket exist?
|
7
|
+
def mutagen_socket_check(socket)
|
8
|
+
log.debug "Check if the mutagen socket \"#{socket}\" exists"
|
9
|
+
|
10
|
+
socket_exists = _mutagen_socket_check_socket(socket)
|
11
|
+
|
12
|
+
unless socket_exists.exitstatus.zero?
|
13
|
+
log.debug "A mutagen socket \"#{socket}\" does not exist"
|
14
|
+
return false
|
15
|
+
end
|
16
|
+
|
17
|
+
log.debug "The mutagen socket \"#{socket}\" does exist"
|
18
|
+
true
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
# Get git branch.
|
24
|
+
def _mutagen_socket_check_socket(socketname)
|
25
|
+
cmd_check_socket = format(
|
26
|
+
config.active['cmd_mutagen_forward_socket_check'],
|
27
|
+
socketname: socketname
|
28
|
+
)
|
29
|
+
try cmd_check_socket
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Takelage
|
4
|
+
# takelage mutagen socket
|
5
|
+
class MutagenSocket < 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 MutagenSocketCheck
|
19
|
+
include MutagenSocketCreate
|
20
|
+
include MutagenSocketList
|
21
|
+
include MutagenSocketTerminate
|
22
|
+
|
23
|
+
# Initialize mtagen socket
|
24
|
+
def initialize(args = [], local_options = {}, configuration = {})
|
25
|
+
# initialize thor parent class
|
26
|
+
super args, local_options, configuration
|
27
|
+
|
28
|
+
@docker_repo = config.active['docker_repo']
|
29
|
+
@username = ENV['USER'] || 'noname'
|
30
|
+
@workdir = Dir.getwd
|
31
|
+
inside = _docker_container_lib_check_matrjoschka
|
32
|
+
@hostname = inside ? ENV['HOSTNAME'] : _docker_container_lib_hostname
|
33
|
+
@hostlabel = "hostname=#{@hostname}"
|
34
|
+
@takellabel = 'type=takelage-socket'
|
35
|
+
@sockets = docker_socket_scheme
|
36
|
+
end
|
37
|
+
|
38
|
+
#
|
39
|
+
# mutagen socket check
|
40
|
+
#
|
41
|
+
desc 'check [SOCKET]', 'Check if mutagen [SOCKET] exists'
|
42
|
+
long_desc <<-LONGDESC.gsub("\n", "\x5")
|
43
|
+
Check if mutagen [SOCKET] exists
|
44
|
+
LONGDESC
|
45
|
+
# Check if mutagen [SOCKET] exists.
|
46
|
+
def check(socket)
|
47
|
+
exit mutagen_socket_check socket
|
48
|
+
end
|
49
|
+
|
50
|
+
#
|
51
|
+
# mutagen socket create
|
52
|
+
#
|
53
|
+
desc 'create [IN] [OUT]', 'Create a mutagen socket from [IN] to [OUT] of the container'
|
54
|
+
long_desc <<-LONGDESC.gsub("\n", "\x5")
|
55
|
+
Create a mutagen socket from [IN] to [OUT] of the container
|
56
|
+
LONGDESC
|
57
|
+
# Create a mutagen socket from [IN] to [OUT] of the container.
|
58
|
+
def create(containersock, hostsock)
|
59
|
+
exit mutagen_socket_create containersock, hostsock
|
60
|
+
end
|
61
|
+
|
62
|
+
#
|
63
|
+
# mutagen socket list
|
64
|
+
#
|
65
|
+
desc 'list', 'List mutagen sockets'
|
66
|
+
long_desc <<-LONGDESC.gsub("\n", "\x5")
|
67
|
+
List mutagen sockets
|
68
|
+
LONGDESC
|
69
|
+
# List mutagen sockets.
|
70
|
+
def list
|
71
|
+
socket_list = mutagen_socket_list
|
72
|
+
exit false if socket_list == false
|
73
|
+
say socket_list
|
74
|
+
true
|
75
|
+
end
|
76
|
+
|
77
|
+
#
|
78
|
+
# mutagen socket terminate
|
79
|
+
#
|
80
|
+
desc 'terminate', 'Terminate a mutagen socket'
|
81
|
+
long_desc <<-LONGDESC.gsub("\n", "\x5")
|
82
|
+
Terminate a mutagen socket
|
83
|
+
LONGDESC
|
84
|
+
# Terminate a mutagen socket.
|
85
|
+
def terminate(socket)
|
86
|
+
exit mutagen_socket_terminate socket
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# takelage mutagen socket create
|
4
|
+
module MutagenSocketCreate
|
5
|
+
# Backend method for mutagen socket create.
|
6
|
+
def mutagen_socket_create(containersock, hostsock)
|
7
|
+
socketname = @hostname[-11..-1]
|
8
|
+
log.debug "Create the mutagen socket \"#{socketname}\" in the container" \
|
9
|
+
"at \"#{containersock}\" pointing to the host at \"#{hostsock}\""
|
10
|
+
|
11
|
+
socket_created = _mutagen_socket_create_socket(socketname, containersock, hostsock)
|
12
|
+
|
13
|
+
unless socket_created.include? 'Created session'
|
14
|
+
log.debug "Unable to create mutagen socket \"#{socketname}\""
|
15
|
+
return false
|
16
|
+
end
|
17
|
+
|
18
|
+
log.debug "Created the mutagen socket \"#{socketname}\""
|
19
|
+
true
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
# Get git branch.
|
25
|
+
# rubocop:disable Metrics/MethodLength
|
26
|
+
def _mutagen_socket_create_socket(socketname, containersock, hostsock)
|
27
|
+
cmd_create_socket = format(
|
28
|
+
config.active['cmd_mutagen_forward_socket_create'],
|
29
|
+
socketname: socketname,
|
30
|
+
containersock: containersock,
|
31
|
+
hostsock: hostsock,
|
32
|
+
username: @username,
|
33
|
+
container: @hostname,
|
34
|
+
hostlabel: @hostlabel,
|
35
|
+
takellabel: @takellabel
|
36
|
+
)
|
37
|
+
run cmd_create_socket
|
38
|
+
end
|
39
|
+
# rubocop:enable Metrics/MethodLength
|
40
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# takelage mutagen socket list
|
4
|
+
module MutagenSocketList
|
5
|
+
# Backend method for mutagen socket list.
|
6
|
+
# @return [String] List of takelage sockets
|
7
|
+
def mutagen_socket_list
|
8
|
+
log.debug 'List the mutagen takelage sockets'
|
9
|
+
|
10
|
+
sockets = _mutagen_socket_list
|
11
|
+
|
12
|
+
if sockets.to_s.empty?
|
13
|
+
log.debug 'No mutagen takelage sockets found'
|
14
|
+
return false
|
15
|
+
end
|
16
|
+
|
17
|
+
log.debug "Found mutagen takelage sockets: \n\"\"\"\n#{sockets}\"\"\""
|
18
|
+
sockets.to_s
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
# Get git branch.
|
24
|
+
def _mutagen_socket_list
|
25
|
+
cmd_list_socket = format(
|
26
|
+
config.active['cmd_mutagen_forward_socket_list'],
|
27
|
+
takellabel: @takellabel
|
28
|
+
)
|
29
|
+
run cmd_list_socket
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# takelage mutagen socket terminate
|
4
|
+
module MutagenSocketTerminate
|
5
|
+
# Backend method for mutagen socket terminate.
|
6
|
+
def mutagen_socket_terminate(socket)
|
7
|
+
log.debug "Terminate the mutagen socket \"#{socket}\""
|
8
|
+
|
9
|
+
socket_terminated = _mutagen_socket_terminate_socket socket
|
10
|
+
|
11
|
+
cmd_remove = config.active['cmd_mutagen_forward_socket_remove']
|
12
|
+
docker_container_command cmd_remove if cmd_remove && socket_terminated.exitstatus.zero?
|
13
|
+
|
14
|
+
unless socket_terminated.exitstatus.zero?
|
15
|
+
log.debug "Unable to terminated mutagen socket \"#{socket}\""
|
16
|
+
return false
|
17
|
+
end
|
18
|
+
|
19
|
+
log.debug "Terminated the mutagen socket \"#{socket}\""
|
20
|
+
true
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
# Get git branch.
|
26
|
+
def _mutagen_socket_terminate_socket(socketname)
|
27
|
+
cmd_terminate_socket = format(
|
28
|
+
config.active['cmd_mutagen_forward_socket_terminate'],
|
29
|
+
socketname: socketname
|
30
|
+
)
|
31
|
+
try cmd_terminate_socket
|
32
|
+
end
|
33
|
+
end
|
data/lib/takelage/version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.28.5
|
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.
|
4
|
+
version: 0.28.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Geospin
|
@@ -271,6 +271,12 @@ 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/cli.rb
|
275
|
+
- lib/takelage/mutagen/socket/check.rb
|
276
|
+
- lib/takelage/mutagen/socket/cli.rb
|
277
|
+
- lib/takelage/mutagen/socket/create.rb
|
278
|
+
- lib/takelage/mutagen/socket/list.rb
|
279
|
+
- lib/takelage/mutagen/socket/terminate.rb
|
274
280
|
- lib/takelage/self/cli.rb
|
275
281
|
- lib/takelage/self/config/cli.rb
|
276
282
|
- lib/takelage/self/list.rb
|