kanrisuru 0.9.0 → 0.11.0
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/.github/CONTRIBUTING.md +9 -9
- data/.github/ISSUE_TEMPLATE/bug_report.md +7 -8
- data/.gitignore +3 -1
- data/CHANGELOG.md +147 -125
- data/CODE_OF_CONDUCT.md +10 -10
- data/README.md +2 -0
- data/kanrisuru.gemspec +2 -1
- data/lib/kanrisuru/core/archive.rb +6 -5
- data/lib/kanrisuru/core/disk.rb +0 -3
- data/lib/kanrisuru/core/find.rb +4 -5
- data/lib/kanrisuru/core/socket.rb +2 -1
- data/lib/kanrisuru/remote/cpu.rb +6 -2
- data/lib/kanrisuru/remote/env.rb +8 -0
- data/lib/kanrisuru/remote/fstab.rb +4 -4
- data/lib/kanrisuru/util.rb +1 -1
- data/lib/kanrisuru/version.rb +1 -1
- data/spec/functional/core/apt_spec.rb +22 -30
- data/spec/functional/core/archive_spec.rb +169 -0
- data/spec/functional/core/find_spec.rb +94 -113
- data/spec/functional/core/socket_spec.rb +23 -28
- data/spec/functional/core/stream_spec.rb +12 -12
- data/spec/functional/core/transfer_spec.rb +108 -131
- data/spec/functional/core/yum_spec.rb +58 -83
- data/spec/functional/remote/cluster_spec.rb +12 -3
- data/spec/functional/remote/cpu_spec.rb +104 -0
- data/spec/functional/remote/env_spec.rb +48 -0
- data/spec/helper/stub_network.rb +52 -9
- data/spec/integration/core/file_spec.rb +0 -1
- data/spec/integration/core/find_spec.rb +1 -0
- data/spec/integration/core/system_spec.rb +0 -1
- data/spec/integration/core/zypper_spec.rb +3 -3
- data/spec/{functional → integration}/os_package_spec.rb +0 -0
- data/spec/spec_helper.rb +3 -0
- data/spec/unit/command_spec.rb +31 -0
- data/spec/unit/core/apt_spec.rb +20 -0
- data/spec/unit/core/archive_spec.rb +20 -0
- data/spec/unit/core/disk_spec.rb +23 -0
- data/spec/unit/core/dmi_spec.rb +20 -0
- data/spec/unit/core/file_spec.rb +35 -0
- data/spec/unit/core/find_spec.rb +21 -1
- data/spec/unit/core/group_spec.rb +24 -0
- data/spec/unit/core/ip_spec.rb +20 -0
- data/spec/unit/core/path_spec.rb +25 -0
- data/spec/unit/core/socket_spec.rb +20 -0
- data/spec/unit/core/stat_spec.rb +27 -0
- data/spec/unit/core/system_spec.rb +35 -0
- data/spec/unit/core/transfer_spec.rb +22 -0
- data/spec/unit/core/user_spec.rb +25 -0
- data/spec/unit/core/yum_spec.rb +20 -0
- data/spec/unit/core/zypper_spec.rb +20 -0
- data/spec/unit/mode_spec.rb +33 -2
- data/spec/unit/remote/cluster_spec.rb +36 -0
- data/spec/unit/remote/cpu_spec.rb +49 -0
- data/spec/unit/remote/env_spec.rb +17 -0
- data/spec/unit/{fstab_spec.rb → remote/fstab_spec.rb} +0 -0
- data/spec/unit/util_spec.rb +13 -0
- metadata +27 -5
@@ -255,7 +255,7 @@ module Kanrisuru
|
|
255
255
|
end
|
256
256
|
|
257
257
|
result = @host.blkid(device: @device)
|
258
|
-
@uuid = result.success? ? result.uuid : nil
|
258
|
+
@uuid = result.success? ? result[0].uuid : nil
|
259
259
|
end
|
260
260
|
|
261
261
|
def parse_uuid(fsline)
|
@@ -269,15 +269,15 @@ module Kanrisuru
|
|
269
269
|
end
|
270
270
|
|
271
271
|
result = @host.blkid(device: @device)
|
272
|
-
@label = result.success? ? result.label : nil
|
272
|
+
@label = result.success? ? result[0].label : nil
|
273
273
|
end
|
274
274
|
|
275
275
|
def parse_dev(fsline)
|
276
276
|
@device = fsline
|
277
277
|
result = @host.blkid(device: @device)
|
278
278
|
|
279
|
-
@label = result.success? ? result.label : nil
|
280
|
-
@uuid = result.success? ? result.uuid : nil
|
279
|
+
@label = result.success? ? result[0].label : nil
|
280
|
+
@uuid = result.success? ? result[0].uuid : nil
|
281
281
|
end
|
282
282
|
end
|
283
283
|
|
data/lib/kanrisuru/util.rb
CHANGED
data/lib/kanrisuru/version.rb
CHANGED
@@ -22,10 +22,9 @@ RSpec.describe Kanrisuru::Core::Apt do
|
|
22
22
|
it 'prepares apt list command' do
|
23
23
|
expect_command(host.apt('list'), 'apt list')
|
24
24
|
expect_command(host.apt('list',
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
), 'apt list --installed --upgradeable --all-versions')
|
25
|
+
installed: true,
|
26
|
+
upgradeable: true,
|
27
|
+
all_versions: true), 'apt list --installed --upgradeable --all-versions')
|
29
28
|
|
30
29
|
expect_command(host.apt('list', package_name: 'nginx'), 'apt list -a nginx')
|
31
30
|
end
|
@@ -43,28 +42,22 @@ RSpec.describe Kanrisuru::Core::Apt do
|
|
43
42
|
end
|
44
43
|
|
45
44
|
it 'prepares apt install command' do
|
46
|
-
expect_command(host.apt('install',
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
expect_command(host.apt('install',
|
61
|
-
packages: ['build-essential', 'manpages-dev'],
|
62
|
-
only_upgrade: true,
|
63
|
-
),
|
64
|
-
'apt-get install -y --only-upgrade build-essential manpages-dev'
|
65
|
-
)
|
45
|
+
expect_command(host.apt('install',
|
46
|
+
packages: 'nginx'),
|
47
|
+
'apt-get install -y nginx')
|
48
|
+
|
49
|
+
expect_command(host.apt('install',
|
50
|
+
packages: 'monit',
|
51
|
+
no_upgrade: true,
|
52
|
+
reinstall: true),
|
53
|
+
'apt-get install -y --no-upgrade --reinstall monit')
|
54
|
+
|
55
|
+
expect_command(host.apt('install',
|
56
|
+
packages: %w[build-essential manpages-dev],
|
57
|
+
only_upgrade: true),
|
58
|
+
'apt-get install -y --only-upgrade build-essential manpages-dev')
|
66
59
|
end
|
67
|
-
|
60
|
+
|
68
61
|
it 'prepares apt remove command' do
|
69
62
|
expect_command(host.apt('remove', packages: ['python']), 'apt-get remove -y python')
|
70
63
|
end
|
@@ -82,15 +75,14 @@ RSpec.describe Kanrisuru::Core::Apt do
|
|
82
75
|
end
|
83
76
|
|
84
77
|
it 'prepares apt show command' do
|
85
|
-
expect_command(host.apt('show', packages: 'ruby'), 'apt show -a ruby')
|
86
|
-
end
|
78
|
+
expect_command(host.apt('show', packages: 'ruby'), 'apt show -a ruby')
|
79
|
+
end
|
87
80
|
|
88
81
|
it 'prepares apt clean command' do
|
89
|
-
expect_command(host.apt('clean'), 'apt-get clean')
|
82
|
+
expect_command(host.apt('clean'), 'apt-get clean')
|
90
83
|
end
|
91
84
|
|
92
85
|
it 'prepares apt autoclean command' do
|
93
|
-
expect_command(host.apt('autoclean'), 'apt-get autoclean')
|
86
|
+
expect_command(host.apt('autoclean'), 'apt-get autoclean')
|
94
87
|
end
|
95
|
-
|
96
88
|
end
|
@@ -0,0 +1,169 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe Kanrisuru::Core::Apt do
|
6
|
+
before(:all) do
|
7
|
+
StubNetwork.stub!
|
8
|
+
StubNetwork.stub_command!(:realpath) do |_args|
|
9
|
+
Kanrisuru::Core::Path::FilePath.new(directory)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
after(:all) do
|
14
|
+
StubNetwork.unstub_command!(:realpath)
|
15
|
+
StubNetwork.unstub!
|
16
|
+
end
|
17
|
+
|
18
|
+
let(:host) do
|
19
|
+
Kanrisuru::Remote::Host.new(
|
20
|
+
host: 'localhost',
|
21
|
+
username: 'ubuntu',
|
22
|
+
keys: ['id_rsa']
|
23
|
+
)
|
24
|
+
end
|
25
|
+
|
26
|
+
let(:directory) { '/home/ubuntu/dir' }
|
27
|
+
|
28
|
+
it 'prepares tar list command' do
|
29
|
+
%w[list t].each do |action_variant|
|
30
|
+
expect_command(host.tar(action_variant, 'file.txt'),
|
31
|
+
'tar --restrict -f file.txt -t')
|
32
|
+
|
33
|
+
expect_command(host.tar(action_variant, '~/file.txt',
|
34
|
+
compress: 'bzip2',
|
35
|
+
directory: directory,
|
36
|
+
occurrence: 1,
|
37
|
+
label: true,
|
38
|
+
multi_volume: true),
|
39
|
+
'tar --restrict -C /home/ubuntu/dir -f ~/file.txt -j -t --occurrence 1 --label --multi-volume')
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'prepares tar extract command' do
|
44
|
+
%w[extract get x].each do |action_variant|
|
45
|
+
expect_command(host.tar(action_variant, 'archive.tar'),
|
46
|
+
'tar --restrict -f archive.tar -x')
|
47
|
+
|
48
|
+
expect_command(host.tar(action_variant, 'archive.tar',
|
49
|
+
compress: 'xz',
|
50
|
+
directory: directory,
|
51
|
+
occurrence: 2,
|
52
|
+
no_same_owner: true,
|
53
|
+
no_same_permissions: true,
|
54
|
+
no_selinux: true,
|
55
|
+
no_xattrs: true,
|
56
|
+
multi_volume: true,
|
57
|
+
label: true,
|
58
|
+
skip_old_files: true,
|
59
|
+
overwrite: true,
|
60
|
+
overwrite_dir: true,
|
61
|
+
unlink_first: true,
|
62
|
+
recursive_unlink: true,
|
63
|
+
paths: 'file.txt'),
|
64
|
+
'tar --restrict -C /home/ubuntu/dir -f archive.tar -J -x --occurrence 2 --no-same-owner --no-same-permissions --no-selinux --no-xattrs --multi-volume --label --skip-old-files --overwrite --overwrite-dir --unlink-first --recursive-unlink file.txt')
|
65
|
+
|
66
|
+
expect_command(host.tar(action_variant, 'archive.tar',
|
67
|
+
preserve_permissions: true,
|
68
|
+
same_owners: true,
|
69
|
+
one_file_system: true,
|
70
|
+
keep_old_files: true,
|
71
|
+
paths: ['file1.txt', 'file2.txt']),
|
72
|
+
'tar --restrict -f archive.tar -x --preserve-permissions --same-owner --one-file-system --keep-old-files file1.txt file2.txt')
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
it 'prepares tar create command' do
|
77
|
+
%w[create c].each do |action_variant|
|
78
|
+
expect_command(host.tar(action_variant, 'archive.lzma', compress: 'lzma'),
|
79
|
+
'tar --restrict -f archive.lzma --lzma -c')
|
80
|
+
expect_command(host.tar(action_variant, 'archive.gz'), 'tar --restrict -f archive.gz -c')
|
81
|
+
|
82
|
+
expect_command(host.tar(action_variant, 'archive.gz',
|
83
|
+
directory: directory,
|
84
|
+
compress: 'gzip',
|
85
|
+
exclude: 'file2.txt',
|
86
|
+
paths: 'file1.txt'),
|
87
|
+
'tar --restrict -C /home/ubuntu/dir -f archive.gz -z -c --exclude=file2.txt file1.txt')
|
88
|
+
|
89
|
+
expect_command(host.tar(action_variant, 'archive.gz',
|
90
|
+
compress: 'gzip',
|
91
|
+
exclude: ['file2.txt', 'file4.txt'],
|
92
|
+
paths: ['file1.txt', 'file3.txt']),
|
93
|
+
'tar --restrict -f archive.gz -z -c --exclude=file2.txt --exclude=file4.txt file1.txt file3.txt')
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
it 'prepares tar append command' do
|
98
|
+
%w[append r].each do |action_variant|
|
99
|
+
expect_command(host.tar(action_variant, 'archive.tar'), 'tar --restrict -f archive.tar -r')
|
100
|
+
|
101
|
+
expect_command(host.tar(action_variant, 'archive.tar',
|
102
|
+
directory: directory,
|
103
|
+
paths: 'main.conf'),
|
104
|
+
'tar --restrict -C /home/ubuntu/dir -f archive.tar -r main.conf')
|
105
|
+
|
106
|
+
expect_command(host.tar(action_variant, 'archive.tar',
|
107
|
+
paths: ['main.conf', 'main2.conf']),
|
108
|
+
'tar --restrict -f archive.tar -r main.conf main2.conf')
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
it 'prepares tar concat command' do
|
113
|
+
%w[catenate concat A].each do |action_variant|
|
114
|
+
expect_command(host.tar(action_variant, 'archive.tar'), 'tar --restrict -f archive.tar -A')
|
115
|
+
expect_command(host.tar(action_variant, 'archive.tar',
|
116
|
+
directory: directory,
|
117
|
+
paths: 'archive2.tar'),
|
118
|
+
'tar --restrict -C /home/ubuntu/dir -f archive.tar -A archive2.tar')
|
119
|
+
|
120
|
+
expect_command(host.tar(action_variant, 'archive.tar',
|
121
|
+
directory: directory,
|
122
|
+
paths: ['archive2.tar', 'archive3.tar']),
|
123
|
+
'tar --restrict -C /home/ubuntu/dir -f archive.tar -A archive2.tar archive3.tar')
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
it 'prepares tar update command' do
|
128
|
+
%w[update u].each do |action_variant|
|
129
|
+
expect_command(host.tar(action_variant, 'archive',
|
130
|
+
paths: 'file1.txt'),
|
131
|
+
'tar --restrict -f archive -u file1.txt')
|
132
|
+
|
133
|
+
expect_command(host.tar(action_variant, 'archive',
|
134
|
+
directory: directory,
|
135
|
+
paths: ['file1.txt', 'file2.txt']),
|
136
|
+
'tar --restrict -C /home/ubuntu/dir -f archive -u file1.txt file2.txt')
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
it 'prepares tar diff command' do
|
141
|
+
%w[diff compare d].each do |action_variant|
|
142
|
+
expect_command(host.tar(action_variant, 'archive.tar', directory: directory),
|
143
|
+
'tar --restrict -C /home/ubuntu/dir -f archive.tar -d')
|
144
|
+
expect_command(host.tar(action_variant, 'archive.tar',
|
145
|
+
directory: directory,
|
146
|
+
occurrence: 4),
|
147
|
+
'tar --restrict -C /home/ubuntu/dir -f archive.tar -d --occurrence 4')
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
it 'prepares tar delete command' do
|
152
|
+
expect_command(host.tar('delete', 'archive.tar', paths: 'file1.txt'),
|
153
|
+
'tar --restrict -f archive.tar --delete file1.txt')
|
154
|
+
expect_command(host.tar('delete', 'archive.tar',
|
155
|
+
paths: ['file1.txt', 'file2.txt'],
|
156
|
+
occurrence: 3),
|
157
|
+
'tar --restrict -f archive.tar --delete --occurrence 3 file1.txt file2.txt')
|
158
|
+
end
|
159
|
+
|
160
|
+
it 'prepares invalid tar command' do
|
161
|
+
expect do
|
162
|
+
host.tar('abc', 'file1.txt')
|
163
|
+
end.to raise_error(ArgumentError)
|
164
|
+
|
165
|
+
expect do
|
166
|
+
host.tar('create', 'archive.tar', compress: 'xip')
|
167
|
+
end.to raise_error(ArgumentError)
|
168
|
+
end
|
169
|
+
end
|
@@ -20,150 +20,131 @@ RSpec.describe Kanrisuru::Core::Find do
|
|
20
20
|
end
|
21
21
|
|
22
22
|
it 'prepares find command' do
|
23
|
-
expect_command(host.find,
|
23
|
+
expect_command(host.find, 'find')
|
24
24
|
|
25
|
-
expect_command(host.find(follow: 'never'),
|
26
|
-
expect_command(host.find(follow: 'always'),
|
27
|
-
expect_command(host.find(follow: 'command'),
|
25
|
+
expect_command(host.find(follow: 'never'), 'find -P')
|
26
|
+
expect_command(host.find(follow: 'always'), 'find -L')
|
27
|
+
expect_command(host.find(follow: 'command'), 'find -H')
|
28
28
|
|
29
|
-
expect_command(host.find(paths: '/etc'),
|
30
|
-
expect_command(host.find(paths: ['/etc', '/var', '/home']),
|
29
|
+
expect_command(host.find(paths: '/etc'), 'find /etc')
|
30
|
+
expect_command(host.find(paths: ['/etc', '/var', '/home']), 'find /etc /var /home')
|
31
31
|
|
32
|
-
expect
|
32
|
+
expect do
|
33
33
|
host.find(paths: 1)
|
34
|
-
|
35
|
-
|
36
|
-
expect_command(host.find(paths: '/',
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
maxdepth: 100
|
58
|
-
),
|
59
|
-
"find / -path /lib -name *.so -gid 0 -uid 0 -user root -group root -links 2 -maxdepth 100 -mindepth 0"
|
60
|
-
)
|
34
|
+
end.to raise_error(ArgumentError)
|
35
|
+
|
36
|
+
expect_command(host.find(paths: '/',
|
37
|
+
executable: true,
|
38
|
+
empty: true,
|
39
|
+
readable: true,
|
40
|
+
writeable: true,
|
41
|
+
nogroup: true,
|
42
|
+
nouser: true,
|
43
|
+
mount: true),
|
44
|
+
'find / -executable -empty -readable -nogroup -nouser -mount')
|
45
|
+
|
46
|
+
expect_command(host.find(paths: '/',
|
47
|
+
path: '/lib',
|
48
|
+
name: '*.so',
|
49
|
+
gid: 0,
|
50
|
+
uid: 0,
|
51
|
+
user: 'root',
|
52
|
+
group: 'root',
|
53
|
+
links: 2,
|
54
|
+
mindepth: 0,
|
55
|
+
maxdepth: 100),
|
56
|
+
'find / -path /lib -name *.so -gid 0 -uid 0 -user root -group root -links 2 -maxdepth 100 -mindepth 0')
|
61
57
|
|
62
58
|
expect_command(host.find(paths: '/var/log',
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
"find /var/log -atime +1 -ctime +2 -mtime +3 -amin 100 -cmin 200 -mmin 300"
|
71
|
-
)
|
59
|
+
atime: '+1',
|
60
|
+
ctime: '+2',
|
61
|
+
mtime: '+3',
|
62
|
+
amin: '100',
|
63
|
+
cmin: '200',
|
64
|
+
mmin: '300'),
|
65
|
+
'find /var/log -atime +1 -ctime +2 -mtime +3 -amin 100 -cmin 200 -mmin 300')
|
72
66
|
|
73
67
|
expect_command(host.find(
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
)
|
68
|
+
paths: '/dev',
|
69
|
+
regex: '/dev/tty[0-9]*'
|
70
|
+
),
|
71
|
+
"find /dev -regex '/dev/tty[0-9]*'")
|
79
72
|
|
80
73
|
expect_command(host.find(
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
)
|
74
|
+
paths: '/dev',
|
75
|
+
regex_type: 'posix-egrep',
|
76
|
+
regex: '/dev/tty[0-9]*'
|
77
|
+
),
|
78
|
+
"find /dev -regextype posix-egrep -regex '/dev/tty[0-9]*'")
|
87
79
|
|
88
80
|
expect_command(host.find(
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
)
|
81
|
+
paths: '/var/log',
|
82
|
+
size: 100
|
83
|
+
),
|
84
|
+
'find /var/log -size 100')
|
94
85
|
|
95
86
|
expect_command(host.find(
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
}.to raise_error(ArgumentError)
|
87
|
+
paths: '/var/log',
|
88
|
+
size: '100'
|
89
|
+
),
|
90
|
+
'find /var/log -size 100')
|
91
|
+
|
92
|
+
expect do
|
93
|
+
host.find(size: '100n')
|
94
|
+
end.to raise_error(ArgumentError)
|
105
95
|
|
106
96
|
expect_command(host.find(
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
)
|
97
|
+
paths: '/var/log',
|
98
|
+
size: '-100k'
|
99
|
+
),
|
100
|
+
'find /var/log -size -100k')
|
112
101
|
|
113
102
|
expect_command(host.find(
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
)
|
103
|
+
paths: '/var/log',
|
104
|
+
size: '+10M'
|
105
|
+
),
|
106
|
+
'find /var/log -size +10M')
|
119
107
|
|
120
108
|
expect_command(host.find(
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
)
|
109
|
+
paths: '/dev',
|
110
|
+
type: 'directory'
|
111
|
+
),
|
112
|
+
'find /dev -type d')
|
126
113
|
|
127
114
|
expect_command(host.find(
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
)
|
115
|
+
paths: '/dev',
|
116
|
+
type: 'file'
|
117
|
+
),
|
118
|
+
'find /dev -type f')
|
133
119
|
|
134
120
|
expect_command(host.find(
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
)
|
121
|
+
paths: '/dev',
|
122
|
+
type: 'symlinks'
|
123
|
+
),
|
124
|
+
'find /dev -type l')
|
140
125
|
|
141
126
|
expect_command(host.find(
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
)
|
127
|
+
paths: '/dev',
|
128
|
+
type: 'block'
|
129
|
+
),
|
130
|
+
'find /dev -type b')
|
147
131
|
|
148
132
|
expect_command(host.find(
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
)
|
133
|
+
paths: '/dev',
|
134
|
+
type: 'character'
|
135
|
+
),
|
136
|
+
'find /dev -type c')
|
154
137
|
|
155
138
|
expect_command(host.find(
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
)
|
139
|
+
paths: '/dev',
|
140
|
+
type: 'pipe'
|
141
|
+
),
|
142
|
+
'find /dev -type p')
|
161
143
|
|
162
144
|
expect_command(host.find(
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
)
|
145
|
+
paths: '/dev',
|
146
|
+
type: 'socket'
|
147
|
+
),
|
148
|
+
'find /dev -type s')
|
168
149
|
end
|
169
150
|
end
|
@@ -23,45 +23,40 @@ RSpec.describe Kanrisuru::Core::Socket do
|
|
23
23
|
expect_command(host.ss, 'ss -a -m')
|
24
24
|
|
25
25
|
expect_command(host.ss(
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
)
|
26
|
+
numeric: true,
|
27
|
+
tcp: true,
|
28
|
+
udp: true,
|
29
|
+
unix: true,
|
30
|
+
raw: true
|
31
|
+
),
|
32
|
+
'ss -a -m -n -t -u -x -w')
|
34
33
|
|
35
34
|
expect_command(host.ss(
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
)
|
35
|
+
family: 'inet'
|
36
|
+
),
|
37
|
+
'ss -a -m -f inet')
|
40
38
|
|
41
|
-
expect
|
39
|
+
expect do
|
42
40
|
host.ss(family: 'inet5')
|
43
|
-
|
41
|
+
end.to raise_error(ArgumentError)
|
44
42
|
|
45
43
|
expect_command(host.ss(
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
)
|
44
|
+
state: 'established'
|
45
|
+
),
|
46
|
+
'ss -a -m state established')
|
50
47
|
|
51
48
|
expect_command(host.ss(
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
)
|
49
|
+
state: 'connected'
|
50
|
+
),
|
51
|
+
'ss -a -m state connected')
|
56
52
|
|
57
|
-
expect
|
53
|
+
expect do
|
58
54
|
host.ss(state: 'test')
|
59
|
-
|
55
|
+
end.to raise_error(ArgumentError)
|
60
56
|
|
61
57
|
expect_command(host.ss(
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
)
|
58
|
+
expression: "'( dport = :ssh or sport = :ssh )'"
|
59
|
+
),
|
60
|
+
"ss -a -m '( dport = :ssh or sport = :ssh )'")
|
66
61
|
end
|
67
62
|
end
|
@@ -85,30 +85,30 @@ RSpec.describe Kanrisuru::Core::Stream do
|
|
85
85
|
expect_command(host.echo('Hello\\n world', backslash: true), "echo -e 'Hello\\n world'")
|
86
86
|
|
87
87
|
expect_command(host.echo('Hello world', new_file: '~/file1.txt', mode: 'write'),
|
88
|
-
|
89
|
-
|
88
|
+
"echo 'Hello world' > ~/file1.txt")
|
89
|
+
|
90
90
|
expect_command(host.echo('Goodbye', new_file: '~/file1.txt', mode: 'append'),
|
91
|
-
|
91
|
+
"echo 'Goodbye' >> ~/file1.txt")
|
92
92
|
end
|
93
93
|
|
94
94
|
it 'prepares cat command' do
|
95
95
|
expect_command(host.cat('/etc/group'), 'cat /etc/group')
|
96
96
|
expect_command(host.cat('/etc/group', show_all: true), 'cat -A /etc/group')
|
97
97
|
expect_command(host.cat('/etc/group',
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
98
|
+
show_tabs: true,
|
99
|
+
number: true,
|
100
|
+
squeeze_blank: true,
|
101
|
+
show_nonprinting: true,
|
102
|
+
show_ends: true,
|
103
|
+
number_nonblank: true), 'cat -T -n -s -v -E -b /etc/group')
|
104
104
|
|
105
105
|
expect_command(host.cat(['~/file1.txt', '~/file2.txt', '~/file3.txt']),
|
106
|
-
|
106
|
+
'cat ~/file1.txt ~/file2.txt ~/file3.txt')
|
107
107
|
|
108
108
|
expect_command(host.cat(['~/file1.txt', '~/file2.txt', '~/file3.txt'], mode: 'write', new_file: 'combined.txt'),
|
109
|
-
|
109
|
+
'cat ~/file1.txt ~/file2.txt ~/file3.txt > combined.txt')
|
110
110
|
|
111
111
|
expect_command(host.cat(['~/file1.txt', '~/file2.txt', '~/file3.txt'], mode: 'append', new_file: 'combined.txt'),
|
112
|
-
|
112
|
+
'cat ~/file1.txt ~/file2.txt ~/file3.txt >> combined.txt')
|
113
113
|
end
|
114
114
|
end
|