ykutils 0.1.1 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +6 -0
  3. data/.rubocop.yml +2 -1
  4. data/.rubocop_todo.yml +181 -85
  5. data/Gemfile +12 -4
  6. data/Gemfile.lock +23 -13
  7. data/bin/erubix +17 -0
  8. data/bin/erubix2 +13 -0
  9. data/bin/makegrid +4 -4
  10. data/lib/ykutils/erubyx.rb +41 -3
  11. data/lib/ykutils/fileoputils.rb +2 -2
  12. data/lib/ykutils/gridlist.rb +49 -67
  13. data/lib/ykutils/lines.rb +143 -143
  14. data/lib/ykutils/lsutils.rb +71 -71
  15. data/lib/ykutils/nginxconfig.rb +40 -0
  16. data/lib/ykutils/nginxconfigfiles.rb +31 -0
  17. data/lib/ykutils/nkfutil.rb +148 -147
  18. data/lib/ykutils/nkfutil19.rb +9 -11
  19. data/lib/ykutils/osutil.rb +16 -16
  20. data/lib/ykutils/retcodex.rb +1 -3
  21. data/lib/ykutils/stext.rb +427 -425
  22. data/lib/ykutils/stextx.rb +32 -32
  23. data/lib/ykutils/stringutils.rb +111 -111
  24. data/lib/ykutils/treemanager.rb +33 -33
  25. data/lib/ykutils/treemanagera.rb +21 -21
  26. data/lib/ykutils/version.rb +1 -1
  27. data/lib/ykutils/xlines.rb +8 -8
  28. data/lib/ykutils/yamlop.rb +227 -227
  29. data/lib/ykutils/yamlxop.rb +35 -35
  30. data/lib/ykutils.rb +4 -0
  31. data/test_data/4servers.erb +7 -0
  32. data/test_data/a.bat +5 -0
  33. data/test_data/a_ncn.bat +12 -0
  34. data/test_data/top.yml +0 -0
  35. data/test_data/v103-3-189-127/4servers.erb +0 -0
  36. data/test_data/v103-3-189-127/a.northern-cross.net/base.yml +28 -0
  37. data/test_data/v103-3-189-127/a.northern-cross.net/value_host.yml +1 -0
  38. data/test_data/v103-3-189-127/b.northern-cross.net/base.yml +28 -0
  39. data/test_data/v103-3-189-127/b.northern-cross.net/value_host.yml +1 -0
  40. data/test_data/v103-3-189-127/c.northern-cross.net/base.yml +28 -0
  41. data/test_data/v103-3-189-127/c.northern-cross.net/value_host.yml +1 -0
  42. data/test_data/v103-3-189-127/d.northern-cross.info/base.yml +28 -0
  43. data/test_data/v103-3-189-127/d.northern-cross.info/value_host.yml +1 -0
  44. data/test_data/v103-3-189-127/d.northern-cross.net/base.yml +28 -0
  45. data/test_data/v103-3-189-127/d.northern-cross.net/value_host.yml +1 -0
  46. data/test_data/v103-3-189-127/e.northern-cross.info/base.yml +28 -0
  47. data/test_data/v103-3-189-127/e.northern-cross.info/value_host.yml +1 -0
  48. data/test_data/v103-3-189-127/e.northern-cross.net/base.yml +28 -0
  49. data/test_data/v103-3-189-127/e.northern-cross.net/value_host.yml +1 -0
  50. data/test_data/v103-3-189-127/f.northern-cross.info/base.yml +28 -0
  51. data/test_data/v103-3-189-127/f.northern-cross.info/value_host.yml +1 -0
  52. data/test_data/v103-3-189-127/f.northern-cross.net/base.yml +28 -0
  53. data/test_data/v103-3-189-127/f.northern-cross.net/value_host.yml +1 -0
  54. data/test_data/v103-3-189-127/t_server_1.erb +7 -0
  55. data/test_data/v103-3-189-127/template.erb +21 -0
  56. data/test_data/v103-3-189-127/template_ssl.erb +22 -0
  57. data/test_data/v103-3-189-127/template_ssl_www.erb +12 -0
  58. data/test_data/v103-3-189-127/template_www.erb +24 -0
  59. data/test_data/v103-3-189-127/value.yml +3 -0
  60. data/test_data/v103-3-189-127/value_ssl.yml +5 -0
  61. data/ykutils.gemspec +45 -43
  62. metadata +44 -8
@@ -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
@@ -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
- ! , :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
- =begin
26
- p min_row
27
- p max_row
28
- p min_colum
29
- p max_colum
30
- =end
31
- (min_row..max_row).map { |row|
32
- (min_colum..max_colum).map { |colum|
33
- #puts "#{row} #{colum}"
34
- value_hash = { row: row, colum: colum }
35
- #make_one_grid(template_hash, value_hash)
36
- p template_hash
37
- p value_hash
38
- Ykutils::Erubyx::erubi_render(template_hash, scope, value_hash)
39
- }
40
- }
41
- end
42
-
43
- def make_grid_list()
44
- template_hash = TAMPLETES[:GRID_DEF]
45
- scope = nil
46
- =begin
47
- min_row = 1
48
- max_row = 2
49
- min_colum = 1
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
@@ -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
- :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
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