kanrisuru 0.16.17 → 0.19.1
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/CHANGELOG.md +12 -0
- data/lib/kanrisuru/core/mount/commands/umount.rb +1 -1
- data/lib/kanrisuru/core/system/commands/history.rb +29 -0
- data/lib/kanrisuru/core/system/commands/nproc.rb +15 -0
- data/lib/kanrisuru/core/system/commands/sysctl.rb +26 -0
- data/lib/kanrisuru/core/system/commands.rb +3 -0
- data/lib/kanrisuru/core/system/parser.rb +2 -0
- data/lib/kanrisuru/core/system/parsers/history.rb +18 -0
- data/lib/kanrisuru/core/system/parsers/load_env.rb +2 -3
- data/lib/kanrisuru/core/system/parsers/sysctl.rb +73 -0
- data/lib/kanrisuru/version.rb +1 -1
- data/spec/functional/core/system_spec.rb +24 -0
- data/spec/functional/core/transfer_spec.rb +4 -4
- data/spec/support/shared_examples/integration/core/system.rb +26 -0
- data/spec/unit/core/system_spec.rb +3 -0
- metadata +8 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a2f4308d14c64ac5f78a9f459623671d0d91901b679570ab72466c5176c22035
|
|
4
|
+
data.tar.gz: 734a54c6d1d147bf4e2ae67be7b3569331849cf9cb2df458d15dbe3effcc9292
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bb982b8fa4cb1c313ec4111770498ee9ff2bd75676bc2a5c57da71b3ef5f3dc01a9c016848939ef92bb0b84ed990f64684d7825bc93febd4a7d5e8def44ec5a8
|
|
7
|
+
data.tar.gz: b97a3b67ef2b3be719d967adf2e3bf54ac583da368d96a95ea18d415961f46a5368768f022f160a4de3f7de6f9d2787f5c68b66e547e2c4c7ee1b931b2f3d9ec
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## Kanrisuru 0.19.1 (February 02, 2022) ##
|
|
2
|
+
* Fix `load_env` command with parsing output, use `to_a` for cleaner newline parsing.
|
|
3
|
+
|
|
4
|
+
## Kanrisuru 0.19.0 (January 25, 2022) ##
|
|
5
|
+
* Add readonly version of `sysctl` command with test cases.
|
|
6
|
+
|
|
7
|
+
## Kanrisuru 0.18.0 (January 23, 2022) ##
|
|
8
|
+
* Add `history` command with test cases.
|
|
9
|
+
|
|
10
|
+
## Kanrisuru 0.17.0 (January 20, 2022) ##
|
|
11
|
+
* Add `nproc` command with test cases.
|
|
12
|
+
|
|
1
13
|
## Kanrisuru 0.16.17 (January 10, 2022) ##
|
|
2
14
|
* Add additional options to `wget` command.
|
|
3
15
|
* Rename some options to better reflect options from wget program.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Kanrisuru
|
|
4
|
+
module Core
|
|
5
|
+
module System
|
|
6
|
+
def history(opts = {})
|
|
7
|
+
histfile = opts[:histfile] || '~/.bash_history'
|
|
8
|
+
|
|
9
|
+
command = Kanrisuru::Command.new("HISTFILE=#{histfile}; history -r; history")
|
|
10
|
+
|
|
11
|
+
if Kanrisuru::Util.present?(opts[:delete])
|
|
12
|
+
command.append_arg('-d', Kanrisuru::Util.array_join_string(opts[:delete], ' '))
|
|
13
|
+
elsif Kanrisuru::Util.present?(opts[:clear])
|
|
14
|
+
command.append_flag('-c')
|
|
15
|
+
elsif Kanrisuru::Util.present?(opts[:n])
|
|
16
|
+
command << opts[:n]
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
execute_shell(command)
|
|
20
|
+
|
|
21
|
+
Kanrisuru::Result.new(command) do |cmd|
|
|
22
|
+
return if Kanrisuru::Util.present?(opts[:delete]) || Kanrisuru::Util.present?(opts[:clear])
|
|
23
|
+
|
|
24
|
+
Parser::History.parse(cmd)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Kanrisuru
|
|
4
|
+
module Core
|
|
5
|
+
module System
|
|
6
|
+
def nproc(opts = {})
|
|
7
|
+
command = Kanrisuru::Command.new('nproc')
|
|
8
|
+
command.append_flag('--all', opts[:all])
|
|
9
|
+
execute_shell(command)
|
|
10
|
+
|
|
11
|
+
Kanrisuru::Result.new(command, &:to_i)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Kanrisuru
|
|
4
|
+
module Core
|
|
5
|
+
module System
|
|
6
|
+
def sysctl(variable = nil)
|
|
7
|
+
command = Kanrisuru::Command.new('sysctl')
|
|
8
|
+
|
|
9
|
+
## Some older versions have a bug with 255 exit code being returned
|
|
10
|
+
command.append_valid_exit_code(255)
|
|
11
|
+
|
|
12
|
+
if Kanrisuru::Util.present?(variable)
|
|
13
|
+
command << variable
|
|
14
|
+
else
|
|
15
|
+
command.append_flag('--all')
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
execute_shell(command)
|
|
19
|
+
|
|
20
|
+
Kanrisuru::Result.new(command) do |cmd|
|
|
21
|
+
Parser::Sysctl.parse(cmd)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require_relative 'commands/cpu_info'
|
|
4
4
|
require_relative 'commands/free'
|
|
5
|
+
require_relative 'commands/history'
|
|
5
6
|
require_relative 'commands/kernel_statistics'
|
|
6
7
|
require_relative 'commands/kill'
|
|
7
8
|
require_relative 'commands/last'
|
|
@@ -9,9 +10,11 @@ require_relative 'commands/load_average'
|
|
|
9
10
|
require_relative 'commands/load_env'
|
|
10
11
|
require_relative 'commands/lscpu'
|
|
11
12
|
require_relative 'commands/lsof'
|
|
13
|
+
require_relative 'commands/nproc'
|
|
12
14
|
require_relative 'commands/poweroff'
|
|
13
15
|
require_relative 'commands/ps'
|
|
14
16
|
require_relative 'commands/reboot'
|
|
17
|
+
require_relative 'commands/sysctl'
|
|
15
18
|
require_relative 'commands/uptime'
|
|
16
19
|
require_relative 'commands/w'
|
|
17
20
|
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require_relative 'parsers/kernel_statistics'
|
|
4
|
+
require_relative 'parsers/history'
|
|
4
5
|
require_relative 'parsers/last'
|
|
5
6
|
require_relative 'parsers/load_average'
|
|
6
7
|
require_relative 'parsers/load_env'
|
|
7
8
|
require_relative 'parsers/lscpu'
|
|
8
9
|
require_relative 'parsers/lsof'
|
|
9
10
|
require_relative 'parsers/ps'
|
|
11
|
+
require_relative 'parsers/sysctl'
|
|
10
12
|
require_relative 'parsers/uptime'
|
|
11
13
|
require_relative 'parsers/w'
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Kanrisuru
|
|
4
|
+
module Core
|
|
5
|
+
module System
|
|
6
|
+
module Parser
|
|
7
|
+
class History
|
|
8
|
+
def self.parse(command)
|
|
9
|
+
lines = command.to_a
|
|
10
|
+
lines.map do |line|
|
|
11
|
+
line.split(/^\d+\s+/)[1]
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -6,12 +6,11 @@ module Kanrisuru
|
|
|
6
6
|
module Parser
|
|
7
7
|
class LoadEnv
|
|
8
8
|
def self.parse(command)
|
|
9
|
-
|
|
9
|
+
rows = command.to_a
|
|
10
10
|
hash = {}
|
|
11
11
|
|
|
12
|
-
rows = string.split("\n")
|
|
13
12
|
rows.each do |row|
|
|
14
|
-
key, value = row.split('='
|
|
13
|
+
key, value = row.split('=')
|
|
15
14
|
hash[key] = value
|
|
16
15
|
end
|
|
17
16
|
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'ostruct'
|
|
3
|
+
|
|
4
|
+
module Kanrisuru
|
|
5
|
+
module Core
|
|
6
|
+
module System
|
|
7
|
+
module Parser
|
|
8
|
+
class Sysctl
|
|
9
|
+
class << self
|
|
10
|
+
def parse(command)
|
|
11
|
+
result = {}
|
|
12
|
+
|
|
13
|
+
lines = command.to_a
|
|
14
|
+
lines.each do |line|
|
|
15
|
+
next if line.include?("permission denied on key")
|
|
16
|
+
|
|
17
|
+
keys, value = parse_line(line)
|
|
18
|
+
next if Kanrisuru::Util.blank?(value)
|
|
19
|
+
|
|
20
|
+
hash = build_nested_hash(keys, value)
|
|
21
|
+
result = merge_recursively(result, hash)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
build_struct(result)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def build_struct(hash)
|
|
28
|
+
struct = Struct.new(*hash.keys).new
|
|
29
|
+
|
|
30
|
+
hash.keys.each do |key|
|
|
31
|
+
struct[key] = hash[key].is_a?(Hash) ? build_struct(hash[key]) : hash[key]
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
struct
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def merge_recursively(h1, h2)
|
|
38
|
+
h1.merge(h2) do |k, v1, v2|
|
|
39
|
+
if v1.is_a?(Hash) && v2.is_a?(Hash)
|
|
40
|
+
merge_recursively(v1, v2)
|
|
41
|
+
else
|
|
42
|
+
[v1, v2].flatten
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def build_nested_hash(array, value)
|
|
48
|
+
array.reverse.inject(value) { |assigned_value, key| { key => assigned_value } }
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def parse_line(line)
|
|
52
|
+
string, value = line.split(' =')
|
|
53
|
+
return if Kanrisuru::Util.blank?(value)
|
|
54
|
+
|
|
55
|
+
string = string.strip
|
|
56
|
+
value = value.strip
|
|
57
|
+
|
|
58
|
+
if Kanrisuru::Util.numeric?(value)
|
|
59
|
+
value = value.to_i
|
|
60
|
+
elsif /\t+/.match(value)
|
|
61
|
+
## Split tab delimited strings
|
|
62
|
+
value = value.split(/\t/)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
[string.split('.').map(&:to_sym), value]
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
data/lib/kanrisuru/version.rb
CHANGED
|
@@ -43,6 +43,20 @@ RSpec.describe Kanrisuru::Core::System do
|
|
|
43
43
|
end.to raise_error(ArgumentError)
|
|
44
44
|
end
|
|
45
45
|
|
|
46
|
+
it 'prepares history command' do
|
|
47
|
+
expect_command(host.history, 'HISTFILE=~/.bash_history; history -r; history')
|
|
48
|
+
expect_command(host.history(histfile: '~/.history', n: 100),
|
|
49
|
+
'HISTFILE=~/.history; history -r; history 100')
|
|
50
|
+
expect_command(host.history(clear: true),
|
|
51
|
+
'HISTFILE=~/.bash_history; history -r; history -c')
|
|
52
|
+
expect_command(host.history(delete: 5),
|
|
53
|
+
'HISTFILE=~/.bash_history; history -r; history -d 5')
|
|
54
|
+
expect_command(host.history(delete: [23, 30]),
|
|
55
|
+
'HISTFILE=~/.bash_history; history -r; history -d 23 30')
|
|
56
|
+
expect_command(host.history(delete: '-7'),
|
|
57
|
+
'HISTFILE=~/.bash_history; history -r; history -d -7')
|
|
58
|
+
end
|
|
59
|
+
|
|
46
60
|
it 'prepares kernel_statistics command' do
|
|
47
61
|
expect_command(host.kernel_statistics, 'cat /proc/stat')
|
|
48
62
|
end
|
|
@@ -79,6 +93,11 @@ RSpec.describe Kanrisuru::Core::System do
|
|
|
79
93
|
expect_command(host.lsof, 'lsof -F pcuftDsin')
|
|
80
94
|
end
|
|
81
95
|
|
|
96
|
+
it 'prepares sysctl command' do
|
|
97
|
+
expect_command(host.sysctl, 'sysctl --all')
|
|
98
|
+
expect_command(host.sysctl('net.ipv4.conf.all'), 'sysctl net.ipv4.conf.all')
|
|
99
|
+
end
|
|
100
|
+
|
|
82
101
|
it 'prepares poweroff command' do
|
|
83
102
|
expect_command(host.poweroff, 'shutdown')
|
|
84
103
|
expect_command(host.poweroff(cancel: true), 'shutdown -c')
|
|
@@ -124,6 +143,11 @@ RSpec.describe Kanrisuru::Core::System do
|
|
|
124
143
|
end.to raise_error(ArgumentError)
|
|
125
144
|
end
|
|
126
145
|
|
|
146
|
+
it 'prepares nproc command' do
|
|
147
|
+
expect_command(host.nproc, 'nproc')
|
|
148
|
+
expect_command(host.nproc(all: true), 'nproc --all')
|
|
149
|
+
end
|
|
150
|
+
|
|
127
151
|
it 'prepares uptime command' do
|
|
128
152
|
expect_command(host.uptime, 'cat /proc/uptime')
|
|
129
153
|
end
|
|
@@ -127,7 +127,7 @@ RSpec.describe Kanrisuru::Core::Stat do
|
|
|
127
127
|
"wget --certificate ~/cert.pem --certificate-type PEM --private-key ~/key.pem --private-key-type PEM --ca-certificate ~/ca.pem --random-file ~/random --https-only #{url}")
|
|
128
128
|
|
|
129
129
|
## FTP
|
|
130
|
-
expect_command(host.wget(
|
|
130
|
+
expect_command(host.wget('ftp.example.com',
|
|
131
131
|
ftp_user: 'admin',
|
|
132
132
|
ftp_password: '12345678',
|
|
133
133
|
no_remove_listing: true,
|
|
@@ -135,15 +135,15 @@ RSpec.describe Kanrisuru::Core::Stat do
|
|
|
135
135
|
no_passive_ftp: true,
|
|
136
136
|
retr_symlinks: true,
|
|
137
137
|
preserve_permissions: true),
|
|
138
|
-
|
|
138
|
+
'wget --ftp-user admin --ftp-password 12345678 --no-remove-listing --no-glob --no-passive-ftp --retr-symlinks --preserve-permissions ftp.example.com')
|
|
139
139
|
|
|
140
|
-
expect_command(host.wget(
|
|
140
|
+
expect_command(host.wget('ftps.example.com',
|
|
141
141
|
ftp_user: 'admin',
|
|
142
142
|
ftp_password: '12345678',
|
|
143
143
|
ftps_implicit: true,
|
|
144
144
|
no_ftps_resume_ssl: true,
|
|
145
145
|
ftps_fallback_to_ftp: true,
|
|
146
|
-
ftps_clear_data_connection: true),
|
|
146
|
+
ftps_clear_data_connection: true), 'wget --ftp-user admin --ftp-password 12345678 --ftps-implicit --no-ftps-resume-ssl --ftps-clear-data-connection --ftps-fallback-to-ftp ftps.example.com')
|
|
147
147
|
|
|
148
148
|
## Recursive Retrieval
|
|
149
149
|
expect_command(host.wget(url,
|
|
@@ -50,6 +50,12 @@ RSpec.shared_examples 'system' do |os_name, host_json, _spec_dir|
|
|
|
50
50
|
expect(result.days).to be >= 0
|
|
51
51
|
end
|
|
52
52
|
|
|
53
|
+
it 'gets history' do
|
|
54
|
+
result = host.history
|
|
55
|
+
expect(result).to be_success
|
|
56
|
+
expect(result.data).to be_instance_of(Array)
|
|
57
|
+
end
|
|
58
|
+
|
|
53
59
|
it 'kills pids' do
|
|
54
60
|
command = 'sleep 100000 > /dev/null 2>&1 &'
|
|
55
61
|
|
|
@@ -94,6 +100,20 @@ RSpec.shared_examples 'system' do |os_name, host_json, _spec_dir|
|
|
|
94
100
|
expect(result.cpus.length).to eq(host.cpu.cores)
|
|
95
101
|
end
|
|
96
102
|
|
|
103
|
+
it 'gets kernel sysctl info' do
|
|
104
|
+
result = host.sysctl
|
|
105
|
+
expect(result).to be_success
|
|
106
|
+
expect(result).to respond_to :net
|
|
107
|
+
expect(result).to respond_to :kernel
|
|
108
|
+
expect(result).to respond_to :dev
|
|
109
|
+
|
|
110
|
+
result = host.sysctl('net.ipv4.conf')
|
|
111
|
+
expect(result).to be_success
|
|
112
|
+
expect(result).to respond_to :net
|
|
113
|
+
expect(result.net).to respond_to :ipv4
|
|
114
|
+
expect(result.net.ipv4).to respond_to :conf
|
|
115
|
+
end
|
|
116
|
+
|
|
97
117
|
it 'gets login details' do
|
|
98
118
|
host.su('root')
|
|
99
119
|
|
|
@@ -108,6 +128,12 @@ RSpec.shared_examples 'system' do |os_name, host_json, _spec_dir|
|
|
|
108
128
|
expect(result).to be_success
|
|
109
129
|
end
|
|
110
130
|
|
|
131
|
+
it 'gets nproc count' do
|
|
132
|
+
result = host.nproc
|
|
133
|
+
expect(result).to be_success
|
|
134
|
+
expect(result.to_i).to be > 0
|
|
135
|
+
end
|
|
136
|
+
|
|
111
137
|
it 'gets process details' do
|
|
112
138
|
result = host.ps
|
|
113
139
|
|
|
@@ -25,12 +25,15 @@ RSpec.describe Kanrisuru::Core::System do
|
|
|
25
25
|
expect(host).to respond_to(:lscpu)
|
|
26
26
|
expect(host).to respond_to(:load_average)
|
|
27
27
|
expect(host).to respond_to(:free)
|
|
28
|
+
expect(host).to respond_to(:history)
|
|
28
29
|
expect(host).to respond_to(:ps)
|
|
29
30
|
expect(host).to respond_to(:kill)
|
|
30
31
|
expect(host).to respond_to(:kernel_statistics)
|
|
31
32
|
expect(host).to respond_to(:kstat)
|
|
32
33
|
expect(host).to respond_to(:lsof)
|
|
34
|
+
expect(host).to respond_to(:nproc)
|
|
33
35
|
expect(host).to respond_to(:last)
|
|
36
|
+
expect(host).to respond_to(:sysctl)
|
|
34
37
|
expect(host).to respond_to(:uptime)
|
|
35
38
|
expect(host).to respond_to(:w)
|
|
36
39
|
expect(host).to respond_to(:who)
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kanrisuru
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.19.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ryan Mammina
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2022-
|
|
11
|
+
date: 2022-02-02 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: parallel_tests
|
|
@@ -307,6 +307,7 @@ files:
|
|
|
307
307
|
- lib/kanrisuru/core/system/commands.rb
|
|
308
308
|
- lib/kanrisuru/core/system/commands/cpu_info.rb
|
|
309
309
|
- lib/kanrisuru/core/system/commands/free.rb
|
|
310
|
+
- lib/kanrisuru/core/system/commands/history.rb
|
|
310
311
|
- lib/kanrisuru/core/system/commands/kernel_statistics.rb
|
|
311
312
|
- lib/kanrisuru/core/system/commands/kill.rb
|
|
312
313
|
- lib/kanrisuru/core/system/commands/last.rb
|
|
@@ -314,12 +315,15 @@ files:
|
|
|
314
315
|
- lib/kanrisuru/core/system/commands/load_env.rb
|
|
315
316
|
- lib/kanrisuru/core/system/commands/lscpu.rb
|
|
316
317
|
- lib/kanrisuru/core/system/commands/lsof.rb
|
|
318
|
+
- lib/kanrisuru/core/system/commands/nproc.rb
|
|
317
319
|
- lib/kanrisuru/core/system/commands/poweroff.rb
|
|
318
320
|
- lib/kanrisuru/core/system/commands/ps.rb
|
|
319
321
|
- lib/kanrisuru/core/system/commands/reboot.rb
|
|
322
|
+
- lib/kanrisuru/core/system/commands/sysctl.rb
|
|
320
323
|
- lib/kanrisuru/core/system/commands/uptime.rb
|
|
321
324
|
- lib/kanrisuru/core/system/commands/w.rb
|
|
322
325
|
- lib/kanrisuru/core/system/parser.rb
|
|
326
|
+
- lib/kanrisuru/core/system/parsers/history.rb
|
|
323
327
|
- lib/kanrisuru/core/system/parsers/kernel_statistics.rb
|
|
324
328
|
- lib/kanrisuru/core/system/parsers/last.rb
|
|
325
329
|
- lib/kanrisuru/core/system/parsers/load_average.rb
|
|
@@ -327,6 +331,7 @@ files:
|
|
|
327
331
|
- lib/kanrisuru/core/system/parsers/lscpu.rb
|
|
328
332
|
- lib/kanrisuru/core/system/parsers/lsof.rb
|
|
329
333
|
- lib/kanrisuru/core/system/parsers/ps.rb
|
|
334
|
+
- lib/kanrisuru/core/system/parsers/sysctl.rb
|
|
330
335
|
- lib/kanrisuru/core/system/parsers/uptime.rb
|
|
331
336
|
- lib/kanrisuru/core/system/parsers/w.rb
|
|
332
337
|
- lib/kanrisuru/core/system/types.rb
|
|
@@ -706,7 +711,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
706
711
|
- !ruby/object:Gem::Version
|
|
707
712
|
version: '0'
|
|
708
713
|
requirements: []
|
|
709
|
-
rubygems_version: 3.
|
|
714
|
+
rubygems_version: 3.3.5
|
|
710
715
|
signing_key:
|
|
711
716
|
specification_version: 4
|
|
712
717
|
summary: Manage remote servers over ssh with ruby.
|