ykutils 0.1.1 → 0.1.6
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/.gitignore +6 -0
- data/.rubocop.yml +2 -1
- data/.rubocop_todo.yml +181 -85
- data/Gemfile +12 -4
- data/Gemfile.lock +23 -13
- data/bin/erubix +17 -0
- data/bin/erubix2 +13 -0
- data/bin/makegrid +4 -4
- data/lib/ykutils/erubyx.rb +41 -3
- data/lib/ykutils/fileoputils.rb +2 -2
- data/lib/ykutils/gridlist.rb +49 -67
- data/lib/ykutils/lines.rb +143 -143
- data/lib/ykutils/lsutils.rb +71 -71
- data/lib/ykutils/nginxconfig.rb +40 -0
- data/lib/ykutils/nginxconfigfiles.rb +31 -0
- data/lib/ykutils/nkfutil.rb +148 -147
- data/lib/ykutils/nkfutil19.rb +9 -11
- data/lib/ykutils/osutil.rb +16 -16
- data/lib/ykutils/retcodex.rb +1 -3
- data/lib/ykutils/stext.rb +427 -425
- data/lib/ykutils/stextx.rb +32 -32
- data/lib/ykutils/stringutils.rb +111 -111
- data/lib/ykutils/treemanager.rb +33 -33
- data/lib/ykutils/treemanagera.rb +21 -21
- data/lib/ykutils/version.rb +1 -1
- data/lib/ykutils/xlines.rb +8 -8
- data/lib/ykutils/yamlop.rb +227 -227
- data/lib/ykutils/yamlxop.rb +35 -35
- data/lib/ykutils.rb +4 -0
- data/test_data/4servers.erb +7 -0
- data/test_data/a.bat +5 -0
- data/test_data/a_ncn.bat +12 -0
- data/test_data/top.yml +0 -0
- data/test_data/v103-3-189-127/4servers.erb +0 -0
- data/test_data/v103-3-189-127/a.northern-cross.net/base.yml +28 -0
- data/test_data/v103-3-189-127/a.northern-cross.net/value_host.yml +1 -0
- data/test_data/v103-3-189-127/b.northern-cross.net/base.yml +28 -0
- data/test_data/v103-3-189-127/b.northern-cross.net/value_host.yml +1 -0
- data/test_data/v103-3-189-127/c.northern-cross.net/base.yml +28 -0
- data/test_data/v103-3-189-127/c.northern-cross.net/value_host.yml +1 -0
- data/test_data/v103-3-189-127/d.northern-cross.info/base.yml +28 -0
- data/test_data/v103-3-189-127/d.northern-cross.info/value_host.yml +1 -0
- data/test_data/v103-3-189-127/d.northern-cross.net/base.yml +28 -0
- data/test_data/v103-3-189-127/d.northern-cross.net/value_host.yml +1 -0
- data/test_data/v103-3-189-127/e.northern-cross.info/base.yml +28 -0
- data/test_data/v103-3-189-127/e.northern-cross.info/value_host.yml +1 -0
- data/test_data/v103-3-189-127/e.northern-cross.net/base.yml +28 -0
- data/test_data/v103-3-189-127/e.northern-cross.net/value_host.yml +1 -0
- data/test_data/v103-3-189-127/f.northern-cross.info/base.yml +28 -0
- data/test_data/v103-3-189-127/f.northern-cross.info/value_host.yml +1 -0
- data/test_data/v103-3-189-127/f.northern-cross.net/base.yml +28 -0
- data/test_data/v103-3-189-127/f.northern-cross.net/value_host.yml +1 -0
- data/test_data/v103-3-189-127/t_server_1.erb +7 -0
- data/test_data/v103-3-189-127/template.erb +21 -0
- data/test_data/v103-3-189-127/template_ssl.erb +22 -0
- data/test_data/v103-3-189-127/template_ssl_www.erb +12 -0
- data/test_data/v103-3-189-127/template_www.erb +24 -0
- data/test_data/v103-3-189-127/value.yml +3 -0
- data/test_data/v103-3-189-127/value_ssl.yml +5 -0
- data/ykutils.gemspec +45 -43
- metadata +44 -8
data/lib/ykutils/fileoputils.rb
CHANGED
@@ -154,7 +154,7 @@ module Ykutils
|
|
154
154
|
ary = []
|
155
155
|
begin
|
156
156
|
File.open(input_file_path, "r") do |file|
|
157
|
-
while line = file.gets
|
157
|
+
while (line = file.gets)
|
158
158
|
line.chomp!
|
159
159
|
ary << file_content_process(line)
|
160
160
|
end
|
@@ -194,7 +194,7 @@ module Ykutils
|
|
194
194
|
ary = []
|
195
195
|
begin
|
196
196
|
File.open(from_path, "r") do |file|
|
197
|
-
while line = file.gets
|
197
|
+
while (line = file.gets)
|
198
198
|
line.chomp!
|
199
199
|
ary << file_content_process(line)
|
200
200
|
end
|
data/lib/ykutils/gridlist.rb
CHANGED
@@ -1,67 +1,49 @@
|
|
1
|
-
require 'ykutils/erubyx'
|
2
|
-
|
3
|
-
module Ykutils
|
4
|
-
module Gridlist
|
5
|
-
TAMPLETES = { :GRID_DEF =>
|
6
|
-
{ :TEMPLATE => %!
|
7
|
-
.g-<%= row %>-<%= colum %> {
|
8
|
-
grid-row-start: <%= row %>;
|
9
|
-
grid-row-end: ,<%= row + 1 %>;
|
10
|
-
grid-column-start: <%= colum %>;
|
11
|
-
grid-column-end: <%= colum + 1 %>;
|
12
|
-
}
|
13
|
-
|
14
|
-
|
15
|
-
module_function
|
16
|
-
|
17
|
-
def make_one_grid(hash, row, colum)
|
18
|
-
unless hash[:OBJ]
|
19
|
-
hash[:OBJ] = Tilt::ErubiTemplate.new{ hash[:TEMPLATE] }
|
20
|
-
end
|
21
|
-
hash[:OBJ].render(
|
22
|
-
end
|
23
|
-
|
24
|
-
def make_grid(template_hash, scope, min_row, max_row, min_colum, max_colum)
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
end
|
42
|
-
|
43
|
-
def
|
44
|
-
template_hash = TAMPLETES[:GRID_DEF]
|
45
|
-
scope = nil
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
max_colum = 5
|
51
|
-
=end
|
52
|
-
make_grid(template_hash, scope, min_row, max_row, min_colum, max_colum)
|
53
|
-
end
|
54
|
-
|
55
|
-
def make_grid_list_x(min_row, max_row, min_colum, max_colum)
|
56
|
-
template_hash = TAMPLETES[:GRID_DEF]
|
57
|
-
scope = nil
|
58
|
-
=begin
|
59
|
-
p min_row
|
60
|
-
p max_row
|
61
|
-
p min_colum
|
62
|
-
p max_colum
|
63
|
-
~end
|
64
|
-
make_grid(template_hash, scope, min_row, max_row, min_colum, max_colum)
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
1
|
+
require 'ykutils/erubyx'
|
2
|
+
|
3
|
+
module Ykutils
|
4
|
+
module Gridlist
|
5
|
+
TAMPLETES = { :GRID_DEF =>
|
6
|
+
{ :TEMPLATE => %!
|
7
|
+
.g-<%= row %>-<%= colum %> {
|
8
|
+
grid-row-start: <%= row %>;
|
9
|
+
grid-row-end: ,<%= row + 1 %>;
|
10
|
+
grid-column-start: <%= colum %>;
|
11
|
+
grid-column-end: <%= colum + 1 %>;
|
12
|
+
}
|
13
|
+
!, :OBJ => nil } }
|
14
|
+
|
15
|
+
module_function
|
16
|
+
|
17
|
+
def make_one_grid(hash, row, colum)
|
18
|
+
unless hash[:OBJ]
|
19
|
+
hash[:OBJ] = Tilt::ErubiTemplate.new { hash[:TEMPLATE] }
|
20
|
+
end
|
21
|
+
hash[:OBJ].render(Object.new, { row: row, colum: colum })
|
22
|
+
end
|
23
|
+
|
24
|
+
def make_grid(template_hash, scope, min_row, max_row, min_colum, max_colum)
|
25
|
+
(min_row..max_row).map { |row|
|
26
|
+
(min_colum..max_colum).map { |colum|
|
27
|
+
# puts "#{row} #{colum}"
|
28
|
+
value_hash = { row: row, colum: colum }
|
29
|
+
# make_one_grid(template_hash, value_hash)
|
30
|
+
# p template_hash
|
31
|
+
# p value_hash
|
32
|
+
Ykutils::Erubyx::erubi_render(template_hash, scope, value_hash)
|
33
|
+
}
|
34
|
+
}
|
35
|
+
end
|
36
|
+
|
37
|
+
def make_grid_list(min_row, max_row, min_colum, max_colum)
|
38
|
+
template_hash = TAMPLETES[:GRID_DEF]
|
39
|
+
scope = nil
|
40
|
+
make_grid(template_hash, scope, min_row, max_row, min_colum, max_colum)
|
41
|
+
end
|
42
|
+
|
43
|
+
def make_grid_list_x(min_row, max_row, min_colum, max_colum)
|
44
|
+
template_hash = TAMPLETES[:GRID_DEF]
|
45
|
+
scope = nil
|
46
|
+
make_grid(template_hash, scope, min_row, max_row, min_colum, max_colum)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
data/lib/ykutils/lines.rb
CHANGED
@@ -1,143 +1,143 @@
|
|
1
|
-
module Ykutils
|
2
|
-
class BasicLines
|
3
|
-
def initialize(line_ary)
|
4
|
-
@line_ary = line_ary
|
5
|
-
end
|
6
|
-
|
7
|
-
def get_line
|
8
|
-
@line_ary.shift if @line_ary.size > -1
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
class Lines
|
13
|
-
def initialize(line_ary)
|
14
|
-
@lines = BasicLines.new(line_ary)
|
15
|
-
@line_stack = []
|
16
|
-
@status = nil
|
17
|
-
|
18
|
-
setup
|
19
|
-
end
|
20
|
-
|
21
|
-
def setup; end
|
22
|
-
|
23
|
-
def get_line
|
24
|
-
@line_stack.shift if @line_stack.size > -1
|
25
|
-
end
|
26
|
-
|
27
|
-
def output_f(fname)
|
28
|
-
if fname
|
29
|
-
File.open(fname, "w") do |file|
|
30
|
-
@line_stack.each do |it|
|
31
|
-
file.write(it.to_s)
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
class FtpOpLines < BasicLines
|
39
|
-
end
|
40
|
-
|
41
|
-
# class AccountLines < BasicLines
|
42
|
-
class AccountLines < Lines
|
43
|
-
HOST_ACCOUNT_START = 10
|
44
|
-
HOST_ACCOUNT = 11
|
45
|
-
HOST_ACCOUNT_END = 12
|
46
|
-
DOMAIN_ACCOUNT_START = 20
|
47
|
-
DOMAIN_ACCOUNT = 21
|
48
|
-
DOMAIN_ACCOUNT_END = 22
|
49
|
-
SEPARATOR = 30
|
50
|
-
ETC = 100
|
51
|
-
|
52
|
-
def setup
|
53
|
-
while line = @lines.get_line
|
54
|
-
next if line.strip == ""
|
55
|
-
|
56
|
-
if line =~ /^---/
|
57
|
-
case @status
|
58
|
-
when HOST_ACCOUNT_START, HOST_ACCOUNT
|
59
|
-
@line_stack.push({ "STATUS" => HOST_ACCOUNT_END,
|
60
|
-
"CONTENT" => nil })
|
61
|
-
when DOMAIN_ACCOUNT_START, DOMAIN_ACCOUNT
|
62
|
-
@line_stack.push({ "STATUS" => DOMAIN_ACCOUNT_END,
|
63
|
-
"CONTENT" => nil })
|
64
|
-
end
|
65
|
-
|
66
|
-
@line_stack.push({ "STATUS" => SEPARATOR,
|
67
|
-
"CONTENT" => line })
|
68
|
-
@status = SEPARATOR
|
69
|
-
elsif line =~ /^\s/
|
70
|
-
case @status
|
71
|
-
when HOST_ACCOUNT_START, HOST_ACCOUNT
|
72
|
-
@line_stack.push({ "STATUS" => HOST_ACCOUNT,
|
73
|
-
"CONTENT" => line })
|
74
|
-
@status = HOST_ACCOUNT
|
75
|
-
when HOST_ACCOUNT_END
|
76
|
-
puts("error!")
|
77
|
-
puts(line)
|
78
|
-
@line_stack.push({ "STATUS" => HOST_ACCOUNT,
|
79
|
-
"CONTENT" => line })
|
80
|
-
@status = HOST_ACCOUNT
|
81
|
-
when DOMAIN_ACCOUNT_START, DOMAIN_ACCOUNT
|
82
|
-
@line_stack.push({ "STATUS" => DOMAIN_ACCOUNT,
|
83
|
-
"CONTENT" => line })
|
84
|
-
@status = DOMAIN_ACCOUNT
|
85
|
-
when DOMAIN_ACCOUNT_END
|
86
|
-
puts("error!")
|
87
|
-
puts(line)
|
88
|
-
@line_stack.push({ "STATUS" => DOMAIN_ACCOUNT,
|
89
|
-
"CONTENT" => line })
|
90
|
-
@status = DOMAIN_ACCOUNT
|
91
|
-
else
|
92
|
-
@line_stack.push({ "STATUS" => ETC,
|
93
|
-
"CONTENT" => line })
|
94
|
-
@status = ETC
|
95
|
-
end
|
96
|
-
elsif line =~ /^==/
|
97
|
-
case @status
|
98
|
-
when HOST_ACCOUNT_START, HOST_ACCOUNT
|
99
|
-
@line_stack.push({ "STATUS" => HOST_ACCOUNT_END,
|
100
|
-
"CONTENT" => nil })
|
101
|
-
when DOMAIN_ACCOUNT_START, DOMAIN_ACCOUNT
|
102
|
-
@line_stack.push({ "STATUS" => DOMAIN_ACCOUNT_END,
|
103
|
-
"CONTENT" => nil })
|
104
|
-
end
|
105
|
-
@line_stack.push({ "STATUS" => DOMAIN_ACCOUNT_START,
|
106
|
-
"CONTENT" => line })
|
107
|
-
@status = DOMAIN_ACCOUNT_START
|
108
|
-
else
|
109
|
-
case @status
|
110
|
-
when HOST_ACCOUNT_START, HOST_ACCOUNT
|
111
|
-
@line_stack.push({ "STATUS" => HOST_ACCOUNT_END,
|
112
|
-
"CONTENT" => nil })
|
113
|
-
when DOMAIN_ACCOUNT_START, DOMAIN_ACCOUNT
|
114
|
-
@line_stack.push({ "STATUS" => DOMAIN_ACCOUNT_END,
|
115
|
-
"CONTENT" => nil })
|
116
|
-
end
|
117
|
-
@line_stack.push({ "STATUS" => HOST_ACCOUNT_START,
|
118
|
-
"CONTENT" => line })
|
119
|
-
@status = HOST_ACCOUNT_START
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
i = @line_stack.size - 1
|
124
|
-
seeking = true
|
125
|
-
while i >= 0 and seeking
|
126
|
-
case @line_stack[i]["STATUS"]
|
127
|
-
when DOMAIN_ACCOUNT_START, DOMAIN_ACCOUNT
|
128
|
-
@line_stack.push({ "STATUS" => DOMAIN_ACCOUNT_END,
|
129
|
-
"CONTENT" => nil })
|
130
|
-
seeking = false
|
131
|
-
when HOST_ACCOUNT_START, HOST_ACCOUNT
|
132
|
-
@line_stack.push({ "STATUS" => HOST_ACCOUNT_END,
|
133
|
-
"CONTENT" => nil })
|
134
|
-
seeking = false
|
135
|
-
when ETC
|
136
|
-
else
|
137
|
-
seeking = false
|
138
|
-
end
|
139
|
-
i -= 1
|
140
|
-
end
|
141
|
-
end
|
142
|
-
end
|
143
|
-
end
|
1
|
+
module Ykutils
|
2
|
+
class BasicLines
|
3
|
+
def initialize(line_ary)
|
4
|
+
@line_ary = line_ary
|
5
|
+
end
|
6
|
+
|
7
|
+
def get_line
|
8
|
+
@line_ary.shift if @line_ary.size > -1
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
class Lines
|
13
|
+
def initialize(line_ary)
|
14
|
+
@lines = BasicLines.new(line_ary)
|
15
|
+
@line_stack = []
|
16
|
+
@status = nil
|
17
|
+
|
18
|
+
setup
|
19
|
+
end
|
20
|
+
|
21
|
+
def setup; end
|
22
|
+
|
23
|
+
def get_line
|
24
|
+
@line_stack.shift if @line_stack.size > -1
|
25
|
+
end
|
26
|
+
|
27
|
+
def output_f(fname)
|
28
|
+
if fname
|
29
|
+
File.open(fname, "w") do |file|
|
30
|
+
@line_stack.each do |it|
|
31
|
+
file.write(it.to_s)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
class FtpOpLines < BasicLines
|
39
|
+
end
|
40
|
+
|
41
|
+
# class AccountLines < BasicLines
|
42
|
+
class AccountLines < Lines
|
43
|
+
HOST_ACCOUNT_START = 10
|
44
|
+
HOST_ACCOUNT = 11
|
45
|
+
HOST_ACCOUNT_END = 12
|
46
|
+
DOMAIN_ACCOUNT_START = 20
|
47
|
+
DOMAIN_ACCOUNT = 21
|
48
|
+
DOMAIN_ACCOUNT_END = 22
|
49
|
+
SEPARATOR = 30
|
50
|
+
ETC = 100
|
51
|
+
|
52
|
+
def setup
|
53
|
+
while (line = @lines.get_line)
|
54
|
+
next if line.strip == ""
|
55
|
+
|
56
|
+
if line =~ /^---/
|
57
|
+
case @status
|
58
|
+
when HOST_ACCOUNT_START, HOST_ACCOUNT
|
59
|
+
@line_stack.push({ "STATUS" => HOST_ACCOUNT_END,
|
60
|
+
"CONTENT" => nil })
|
61
|
+
when DOMAIN_ACCOUNT_START, DOMAIN_ACCOUNT
|
62
|
+
@line_stack.push({ "STATUS" => DOMAIN_ACCOUNT_END,
|
63
|
+
"CONTENT" => nil })
|
64
|
+
end
|
65
|
+
|
66
|
+
@line_stack.push({ "STATUS" => SEPARATOR,
|
67
|
+
"CONTENT" => line })
|
68
|
+
@status = SEPARATOR
|
69
|
+
elsif line =~ /^\s/
|
70
|
+
case @status
|
71
|
+
when HOST_ACCOUNT_START, HOST_ACCOUNT
|
72
|
+
@line_stack.push({ "STATUS" => HOST_ACCOUNT,
|
73
|
+
"CONTENT" => line })
|
74
|
+
@status = HOST_ACCOUNT
|
75
|
+
when HOST_ACCOUNT_END
|
76
|
+
puts("error!")
|
77
|
+
puts(line)
|
78
|
+
@line_stack.push({ "STATUS" => HOST_ACCOUNT,
|
79
|
+
"CONTENT" => line })
|
80
|
+
@status = HOST_ACCOUNT
|
81
|
+
when DOMAIN_ACCOUNT_START, DOMAIN_ACCOUNT
|
82
|
+
@line_stack.push({ "STATUS" => DOMAIN_ACCOUNT,
|
83
|
+
"CONTENT" => line })
|
84
|
+
@status = DOMAIN_ACCOUNT
|
85
|
+
when DOMAIN_ACCOUNT_END
|
86
|
+
puts("error!")
|
87
|
+
puts(line)
|
88
|
+
@line_stack.push({ "STATUS" => DOMAIN_ACCOUNT,
|
89
|
+
"CONTENT" => line })
|
90
|
+
@status = DOMAIN_ACCOUNT
|
91
|
+
else
|
92
|
+
@line_stack.push({ "STATUS" => ETC,
|
93
|
+
"CONTENT" => line })
|
94
|
+
@status = ETC
|
95
|
+
end
|
96
|
+
elsif line =~ /^==/
|
97
|
+
case @status
|
98
|
+
when HOST_ACCOUNT_START, HOST_ACCOUNT
|
99
|
+
@line_stack.push({ "STATUS" => HOST_ACCOUNT_END,
|
100
|
+
"CONTENT" => nil })
|
101
|
+
when DOMAIN_ACCOUNT_START, DOMAIN_ACCOUNT
|
102
|
+
@line_stack.push({ "STATUS" => DOMAIN_ACCOUNT_END,
|
103
|
+
"CONTENT" => nil })
|
104
|
+
end
|
105
|
+
@line_stack.push({ "STATUS" => DOMAIN_ACCOUNT_START,
|
106
|
+
"CONTENT" => line })
|
107
|
+
@status = DOMAIN_ACCOUNT_START
|
108
|
+
else
|
109
|
+
case @status
|
110
|
+
when HOST_ACCOUNT_START, HOST_ACCOUNT
|
111
|
+
@line_stack.push({ "STATUS" => HOST_ACCOUNT_END,
|
112
|
+
"CONTENT" => nil })
|
113
|
+
when DOMAIN_ACCOUNT_START, DOMAIN_ACCOUNT
|
114
|
+
@line_stack.push({ "STATUS" => DOMAIN_ACCOUNT_END,
|
115
|
+
"CONTENT" => nil })
|
116
|
+
end
|
117
|
+
@line_stack.push({ "STATUS" => HOST_ACCOUNT_START,
|
118
|
+
"CONTENT" => line })
|
119
|
+
@status = HOST_ACCOUNT_START
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
i = @line_stack.size - 1
|
124
|
+
seeking = true
|
125
|
+
while i >= 0 and seeking
|
126
|
+
case @line_stack[i]["STATUS"]
|
127
|
+
when DOMAIN_ACCOUNT_START, DOMAIN_ACCOUNT
|
128
|
+
@line_stack.push({ "STATUS" => DOMAIN_ACCOUNT_END,
|
129
|
+
"CONTENT" => nil })
|
130
|
+
seeking = false
|
131
|
+
when HOST_ACCOUNT_START, HOST_ACCOUNT
|
132
|
+
@line_stack.push({ "STATUS" => HOST_ACCOUNT_END,
|
133
|
+
"CONTENT" => nil })
|
134
|
+
seeking = false
|
135
|
+
when ETC
|
136
|
+
else
|
137
|
+
seeking = false
|
138
|
+
end
|
139
|
+
i -= 1
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
143
|
+
end
|
data/lib/ykutils/lsutils.rb
CHANGED
@@ -1,71 +1,71 @@
|
|
1
|
-
require "ykutils/filepermision"
|
2
|
-
require "pathname"
|
3
|
-
|
4
|
-
module Ykytils
|
5
|
-
class DirEntryItem
|
6
|
-
attr_accessor :name, :user, :group, :size, :month, :day, :time, :year, :path, :type, :parent_dir, :valid
|
7
|
-
|
8
|
-
def initialize; end
|
9
|
-
|
10
|
-
def parse(str, parent_dir, valid = true)
|
11
|
-
ary = str.split(/\s+/)
|
12
|
-
perm = ary[0]
|
13
|
-
@type = if perm[0].chr == "d"
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
@perm = FilePermision.new(ary[0][1..9])
|
19
|
-
@value = ary[1]
|
20
|
-
@user = ary[2]
|
21
|
-
@group = ary[3]
|
22
|
-
@size = ary[4]
|
23
|
-
@month = ary[5]
|
24
|
-
@day = ary[6]
|
25
|
-
str = ary[7]
|
26
|
-
if str =~ /:/
|
27
|
-
@year = Time.now.year
|
28
|
-
@time = str
|
29
|
-
else
|
30
|
-
@year = str
|
31
|
-
@time = "00:00:00"
|
32
|
-
end
|
33
|
-
|
34
|
-
@time = ary[7]
|
35
|
-
@name = ary[8]
|
36
|
-
@path = File.join(parent_dir, @name)
|
37
|
-
@parent_dir = parent_dir
|
38
|
-
@valid = valid
|
39
|
-
end
|
40
|
-
|
41
|
-
def to_hash
|
42
|
-
{ "type" => @type, "perm" => @perm.to_hash, "value" => @value, "user" => @user, "group" => @group,
|
43
|
-
"size" => @size, "month" => @month, "day" => @day, "year" => @year,
|
44
|
-
"time" => @time, "name" => @name, "path" => @path, "parent_dir" => @parent_dir, "valid" => @valid }
|
45
|
-
end
|
46
|
-
|
47
|
-
def to_csv
|
48
|
-
"#{@type},#{@perm},#{@value},#{@user},#{@group},#{@size},#{@year},#{@month},#{@day},#{@time},#{@name},#{@parent_dir},#{@valid}"
|
49
|
-
end
|
50
|
-
|
51
|
-
def directory?
|
52
|
-
@type === :DIRECTORY
|
53
|
-
end
|
54
|
-
|
55
|
-
def file?
|
56
|
-
@type === :FILE
|
57
|
-
end
|
58
|
-
|
59
|
-
def owner_perm
|
60
|
-
@perm.owner
|
61
|
-
end
|
62
|
-
|
63
|
-
def group_perm
|
64
|
-
@perm.group
|
65
|
-
end
|
66
|
-
|
67
|
-
def otherr_perm
|
68
|
-
@perm.other
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
1
|
+
require "ykutils/filepermision"
|
2
|
+
require "pathname"
|
3
|
+
|
4
|
+
module Ykytils
|
5
|
+
class DirEntryItem
|
6
|
+
attr_accessor :name, :user, :group, :size, :month, :day, :time, :year, :path, :type, :parent_dir, :valid
|
7
|
+
|
8
|
+
def initialize; end
|
9
|
+
|
10
|
+
def parse(str, parent_dir, valid = true)
|
11
|
+
ary = str.split(/\s+/)
|
12
|
+
perm = ary[0]
|
13
|
+
@type = if perm[0].chr == "d"
|
14
|
+
:DIRECTORY
|
15
|
+
else
|
16
|
+
:FILE
|
17
|
+
end
|
18
|
+
@perm = FilePermision.new(ary[0][1..9])
|
19
|
+
@value = ary[1]
|
20
|
+
@user = ary[2]
|
21
|
+
@group = ary[3]
|
22
|
+
@size = ary[4]
|
23
|
+
@month = ary[5]
|
24
|
+
@day = ary[6]
|
25
|
+
str = ary[7]
|
26
|
+
if str =~ /:/
|
27
|
+
@year = Time.now.year
|
28
|
+
@time = str
|
29
|
+
else
|
30
|
+
@year = str
|
31
|
+
@time = "00:00:00"
|
32
|
+
end
|
33
|
+
|
34
|
+
@time = ary[7]
|
35
|
+
@name = ary[8]
|
36
|
+
@path = File.join(parent_dir, @name)
|
37
|
+
@parent_dir = parent_dir
|
38
|
+
@valid = valid
|
39
|
+
end
|
40
|
+
|
41
|
+
def to_hash
|
42
|
+
{ "type" => @type, "perm" => @perm.to_hash, "value" => @value, "user" => @user, "group" => @group,
|
43
|
+
"size" => @size, "month" => @month, "day" => @day, "year" => @year,
|
44
|
+
"time" => @time, "name" => @name, "path" => @path, "parent_dir" => @parent_dir, "valid" => @valid }
|
45
|
+
end
|
46
|
+
|
47
|
+
def to_csv
|
48
|
+
"#{@type},#{@perm},#{@value},#{@user},#{@group},#{@size},#{@year},#{@month},#{@day},#{@time},#{@name},#{@parent_dir},#{@valid}"
|
49
|
+
end
|
50
|
+
|
51
|
+
def directory?
|
52
|
+
@type === :DIRECTORY
|
53
|
+
end
|
54
|
+
|
55
|
+
def file?
|
56
|
+
@type === :FILE
|
57
|
+
end
|
58
|
+
|
59
|
+
def owner_perm
|
60
|
+
@perm.owner
|
61
|
+
end
|
62
|
+
|
63
|
+
def group_perm
|
64
|
+
@perm.group
|
65
|
+
end
|
66
|
+
|
67
|
+
def otherr_perm
|
68
|
+
@perm.other
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Ykutils
|
2
|
+
class Nginxconfig
|
3
|
+
def initialize(yaml_path)
|
4
|
+
# p "yaml_path=#{yaml_path}"
|
5
|
+
yaml_pn = Pathname.new(yaml_path).cleanpath
|
6
|
+
@virtual_domain_dir_pn = yaml_pn.parent
|
7
|
+
@server_dir_pn = @virtual_domain_dir_pn.parent
|
8
|
+
@common_dir_pn = @server_dir_pn.parent
|
9
|
+
@hash = YAML.load_file(yaml_pn)
|
10
|
+
# p @hash
|
11
|
+
@root = @hash["_root"]
|
12
|
+
# p @root
|
13
|
+
root_template_0_pn = Pathname.new(@root["template"]).cleanpath
|
14
|
+
@root_template_pn = @common_dir_pn + root_template_0_pn
|
15
|
+
# puts "@root_template_pn=#{@root_template_pn}"
|
16
|
+
end
|
17
|
+
|
18
|
+
def extract(scope)
|
19
|
+
hashx = {}
|
20
|
+
@hash.each do |k, v|
|
21
|
+
if k !~ /^_/
|
22
|
+
# puts k
|
23
|
+
# puts v
|
24
|
+
pn = Pathname.new(v["template"]).cleanpath
|
25
|
+
# Pathname.new(v).cleanpath
|
26
|
+
template_pn = @server_dir_pn + pn
|
27
|
+
# puts(template_pn)
|
28
|
+
value_file_path_array = v["value"].map { |x|
|
29
|
+
@virtual_domain_dir_pn + Pathname.new(x).cleanpath
|
30
|
+
}
|
31
|
+
hashx[k] = Ykutils::Erubyx::erubi_render_with_file(template_pn, scope, value_file_path_array)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
template = File.read(@root_template_pn)
|
35
|
+
template_hash = { TEMPLATE: template,
|
36
|
+
OBJ: nil }
|
37
|
+
Ykutils::Erubyx::erubi_render(template_hash, scope, hashx)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Ykutils
|
2
|
+
require 'find'
|
3
|
+
class Nginxconfigfiles
|
4
|
+
def get_file_list(start_dir, re)
|
5
|
+
@file_list = []
|
6
|
+
|
7
|
+
Find.find(start_dir) { |x|
|
8
|
+
if x =~ re
|
9
|
+
# puts x
|
10
|
+
@file_list << x
|
11
|
+
Find.prune
|
12
|
+
end
|
13
|
+
}
|
14
|
+
@file_list
|
15
|
+
end
|
16
|
+
|
17
|
+
def output(file_list)
|
18
|
+
file_list.map { |fname|
|
19
|
+
parent_dir_pn = Pathname.new(fname).cleanpath.parent
|
20
|
+
vdomain = parent_dir_pn.basename
|
21
|
+
output_fname = "#{vdomain}.conf"
|
22
|
+
cli = Nginxconfig.new(fname)
|
23
|
+
scope = nil
|
24
|
+
File.open(output_fname, "w") { |f|
|
25
|
+
x = cli.extract(scope)
|
26
|
+
f.write(x)
|
27
|
+
}
|
28
|
+
}
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|