ykutils 0.1.0 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/main.yml +27 -0
  3. data/.gitignore +5 -1
  4. data/.rspec +1 -0
  5. data/.rubocop.yml +17 -0
  6. data/.rubocop_todo.yml +332 -0
  7. data/CHANGELOG.md +5 -0
  8. data/CODE_OF_CONDUCT.md +84 -0
  9. data/Gemfile +20 -1
  10. data/Gemfile.lock +76 -0
  11. data/LICENSE.txt +21 -0
  12. data/README.md +12 -8
  13. data/Rakefile +11 -0
  14. data/_config.yml +1 -0
  15. data/bin/console +2 -1
  16. data/bin/erubix +17 -0
  17. data/bin/erubix2 +13 -0
  18. data/bin/makegrid +23 -0
  19. data/bin/setup +2 -1
  20. data/lib/ykutils/datastructop.rb +58 -0
  21. data/lib/ykutils/debugutils.rb +28 -35
  22. data/lib/ykutils/erubyx.rb +41 -0
  23. data/lib/ykutils/fileoputils.rb +401 -0
  24. data/lib/ykutils/filepermision.rb +8 -9
  25. data/lib/ykutils/gridlist.rb +49 -0
  26. data/lib/ykutils/hasharray.rb +13 -22
  27. data/lib/ykutils/lines.rb +143 -154
  28. data/lib/ykutils/lsutils.rb +71 -72
  29. data/lib/ykutils/nginxconfig.rb +41 -0
  30. data/lib/ykutils/nginxconfigfiles.rb +31 -0
  31. data/lib/ykutils/nkfutil.rb +147 -155
  32. data/lib/ykutils/nkfutil19.rb +88 -84
  33. data/lib/ykutils/osutil.rb +16 -19
  34. data/lib/ykutils/pathop.rb +16 -18
  35. data/lib/ykutils/retcodex.rb +9 -11
  36. data/lib/ykutils/specfileop.rb +82 -91
  37. data/lib/ykutils/stext.rb +425 -462
  38. data/lib/ykutils/stextx.rb +32 -33
  39. data/lib/ykutils/stringutils.rb +111 -125
  40. data/lib/ykutils/treemanager.rb +33 -36
  41. data/lib/ykutils/treemanagera.rb +21 -26
  42. data/lib/ykutils/version.rb +3 -1
  43. data/lib/ykutils/xlines.rb +8 -9
  44. data/lib/ykutils/yamlop.rb +227 -0
  45. data/lib/ykutils/yamlxop.rb +35 -34
  46. data/lib/ykutils.rb +28 -0
  47. data/sig/ykutils.rbs +4 -0
  48. data/test_data/4servers.erb +7 -0
  49. data/test_data/a.bat +5 -0
  50. data/test_data/a_ncn.bat +12 -0
  51. data/test_data/top.yml +0 -0
  52. data/test_data/v103-3-189-127/4servers.erb +0 -0
  53. data/test_data/v103-3-189-127/a.northern-cross.net/base.yml +28 -0
  54. data/test_data/v103-3-189-127/a.northern-cross.net/value_host.yml +1 -0
  55. data/test_data/v103-3-189-127/b.northern-cross.net/base.yml +28 -0
  56. data/test_data/v103-3-189-127/b.northern-cross.net/value_host.yml +1 -0
  57. data/test_data/v103-3-189-127/c.northern-cross.net/base.yml +28 -0
  58. data/test_data/v103-3-189-127/c.northern-cross.net/value_host.yml +1 -0
  59. data/test_data/v103-3-189-127/d.northern-cross.info/base.yml +28 -0
  60. data/test_data/v103-3-189-127/d.northern-cross.info/value_host.yml +1 -0
  61. data/test_data/v103-3-189-127/d.northern-cross.net/base.yml +28 -0
  62. data/test_data/v103-3-189-127/d.northern-cross.net/value_host.yml +1 -0
  63. data/test_data/v103-3-189-127/e.northern-cross.info/base.yml +28 -0
  64. data/test_data/v103-3-189-127/e.northern-cross.info/value_host.yml +1 -0
  65. data/test_data/v103-3-189-127/e.northern-cross.net/base.yml +28 -0
  66. data/test_data/v103-3-189-127/e.northern-cross.net/value_host.yml +1 -0
  67. data/test_data/v103-3-189-127/f.northern-cross.info/base.yml +28 -0
  68. data/test_data/v103-3-189-127/f.northern-cross.info/value_host.yml +1 -0
  69. data/test_data/v103-3-189-127/f.northern-cross.net/base.yml +28 -0
  70. data/test_data/v103-3-189-127/f.northern-cross.net/value_host.yml +1 -0
  71. data/test_data/v103-3-189-127/t_server_1.erb +7 -0
  72. data/test_data/v103-3-189-127/template.erb +21 -0
  73. data/test_data/v103-3-189-127/template_ssl.erb +22 -0
  74. data/test_data/v103-3-189-127/template_ssl_www.erb +12 -0
  75. data/test_data/v103-3-189-127/template_www.erb +24 -0
  76. data/test_data/v103-3-189-127/value.yml +3 -0
  77. data/test_data/v103-3-189-127/value_ssl.yml +5 -0
  78. data/ykutils.gemspec +43 -27
  79. metadata +91 -27
  80. data/.travis.yml +0 -3
  81. data/lib/ykutils/fileoputils2.rb +0 -443
@@ -1,9 +1,9 @@
1
1
  module Ykutils
2
2
  class FilePermision
3
3
  attr_reader :owner, :group, :other
4
-
4
+
5
5
  class PermisionEntry
6
- def initialize( str )
6
+ def initialize(str)
7
7
  @read = str[0].chr
8
8
  @write = str[1].chr
9
9
  @exec = str[2].chr
@@ -14,14 +14,14 @@ module Ykutils
14
14
  end
15
15
 
16
16
  def to_hash
17
- { "read" => @read , "write" => @write , "exec" => @exec }
17
+ { "read" => @read, "write" => @write, "exec" => @exec }
18
18
  end
19
19
  end
20
20
 
21
- def initialize( str )
22
- @owner = PermisionEntry.new( str[0..2] )
23
- @group = PermisionEntry.new( str[3..5] )
24
- @other = PermisionEntry.new( str[6..8] )
21
+ def initialize(str)
22
+ @owner = PermisionEntry.new(str[0..2])
23
+ @group = PermisionEntry.new(str[3..5])
24
+ @other = PermisionEntry.new(str[6..8])
25
25
  end
26
26
 
27
27
  def to_s
@@ -29,8 +29,7 @@ module Ykutils
29
29
  end
30
30
 
31
31
  def to_hash
32
- h = { "owner" => @owner.to_hash , "group" => @group.to_hash , "other" => @other.to_hash }
32
+ h = { "owner" => @owner.to_hash, "group" => @group.to_hash, "other" => @other.to_hash }
33
33
  end
34
34
  end
35
-
36
35
  end
@@ -0,0 +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
+ (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
@@ -1,25 +1,20 @@
1
1
  module Ykutils
2
2
  class Hasharray < Hash
3
-
4
- def initialize( *args )
5
- super( *args )
3
+ def initialize(*args)
4
+ super(*args)
6
5
  @ary = super.keys
7
6
  # @ary ||= []
8
- unless @ary
9
- @ary = []
10
- end
7
+ @ary ||= []
11
8
  end
12
9
 
13
- def []=(key,value)
14
- super(key,value)
15
- unless @ary.index(key)
16
- @ary << key
17
- end
10
+ def []=(key, value)
11
+ super(key, value)
12
+ @ary << key unless @ary.index(key)
18
13
  end
19
14
 
20
15
  def each(&block)
21
16
  @ary.each do |it|
22
- block.call( it, self[it] )
17
+ block.call(it, self[it])
23
18
  end
24
19
  end
25
20
 
@@ -28,7 +23,7 @@ module Ykutils
28
23
  end
29
24
 
30
25
  def values
31
- @ary.collect{ |it| self[it] }
26
+ @ary.collect { |it| self[it] }
32
27
  end
33
28
 
34
29
  def clear
@@ -36,15 +31,13 @@ module Ykutils
36
31
  @ary = []
37
32
  end
38
33
 
39
- def replace( *args )
40
- super( *args )
34
+ def replace(*args)
35
+ super(*args)
41
36
  @ary = super.keys
42
- unless @ary
43
- @ary = []
44
- end
37
+ @ary ||= []
45
38
  end
46
39
 
47
- def delete(ind , &block)
40
+ def delete(ind, &block)
48
41
  @ary.delete(ind)
49
42
 
50
43
  super
@@ -52,9 +45,7 @@ module Ykutils
52
45
 
53
46
  def delete_if(&block)
54
47
  @ary.each do |it|
55
- if block.call( it , self[it] )
56
- @ary.delete(it)
57
- end
48
+ @ary.delete(it) if block.call(it, self[it])
58
49
  end
59
50
 
60
51
  super
data/lib/ykutils/lines.rb CHANGED
@@ -1,154 +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
- if @line_ary.size > -1
9
- @line_ary.shift
10
- end
11
- end
12
- end
13
-
14
- class Lines
15
- def initialize( line_ary )
16
- @lines = BasicLines.new( line_ary )
17
- @line_stack = []
18
- @status = nil
19
-
20
- setup
21
- end
22
-
23
- def setup
24
- end
25
-
26
- def get_line
27
- if @line_stack.size > -1
28
- @line_stack.shift
29
- end
30
- end
31
-
32
- def output_f( fname )
33
- if fname
34
- File.open( fname , 'w' ){ |file|
35
- @line_stack.each do |it|
36
- file.write(it.to_s)
37
- end
38
- }
39
- end
40
- end
41
-
42
- end
43
-
44
- class FtpOpLines < BasicLines
45
- end
46
-
47
- #class AccountLines < BasicLines
48
- class AccountLines < Lines
49
- HOST_ACCOUNT_START = 10
50
- HOST_ACCOUNT = 11
51
- HOST_ACCOUNT_END = 12
52
- DOMAIN_ACCOUNT_START = 20
53
- DOMAIN_ACCOUNT = 21
54
- DOMAIN_ACCOUNT_END = 22
55
- SEPARATOR = 30
56
- ETC = 100
57
-
58
- def setup
59
- while line = @lines.get_line
60
- next if line.strip == ""
61
- if line =~ /^\-\-\-/
62
- case @status
63
- when HOST_ACCOUNT_START , HOST_ACCOUNT
64
- @line_stack.push( { "STATUS" => HOST_ACCOUNT_END ,
65
- "CONTENT" => nil })
66
- when DOMAIN_ACCOUNT_START , DOMAIN_ACCOUNT
67
- @line_stack.push( { "STATUS" => DOMAIN_ACCOUNT_END ,
68
- "CONTENT" => nil })
69
- else
70
- end
71
-
72
- @line_stack.push( { "STATUS" => SEPARATOR ,
73
- "CONTENT" => line })
74
- @status = SEPARATOR
75
-
76
- elsif line =~ /^\s/
77
- case @status
78
- when HOST_ACCOUNT_START , HOST_ACCOUNT
79
- @line_stack.push( { "STATUS" => HOST_ACCOUNT ,
80
- "CONTENT" => line })
81
- @status = HOST_ACCOUNT
82
- when HOST_ACCOUNT_END
83
- puts( "error!" )
84
- puts( line )
85
- @line_stack.push( { "STATUS" => HOST_ACCOUNT ,
86
- "CONTENT" => line })
87
- @status = HOST_ACCOUNT
88
- when DOMAIN_ACCOUNT_START , DOMAIN_ACCOUNT
89
- @line_stack.push( { "STATUS" => DOMAIN_ACCOUNT ,
90
- "CONTENT" => line })
91
- @status = DOMAIN_ACCOUNT
92
- when DOMAIN_ACCOUNT_END
93
- puts( "error!" )
94
- puts( line )
95
- @line_stack.push( { "STATUS" => DOMAIN_ACCOUNT ,
96
- "CONTENT" => line })
97
- @status = DOMAIN_ACCOUNT
98
- else
99
- @line_stack.push( { "STATUS" => ETC ,
100
- "CONTENT" => line })
101
- @status = ETC
102
- end
103
- else
104
- if line =~ /^==/
105
- case @status
106
- when HOST_ACCOUNT_START , HOST_ACCOUNT
107
- @line_stack.push( { "STATUS" => HOST_ACCOUNT_END ,
108
- "CONTENT" => nil })
109
- when DOMAIN_ACCOUNT_START , DOMAIN_ACCOUNT
110
- @line_stack.push( { "STATUS" => DOMAIN_ACCOUNT_END ,
111
- "CONTENT" => nil })
112
- else
113
- end
114
- @line_stack.push( { "STATUS" => DOMAIN_ACCOUNT_START ,
115
- "CONTENT" => line })
116
- @status = DOMAIN_ACCOUNT_START
117
- else
118
- case @status
119
- when HOST_ACCOUNT_START , HOST_ACCOUNT
120
- @line_stack.push( { "STATUS" => HOST_ACCOUNT_END ,
121
- "CONTENT" => nil })
122
- when DOMAIN_ACCOUNT_START , DOMAIN_ACCOUNT
123
- @line_stack.push( { "STATUS" => DOMAIN_ACCOUNT_END ,
124
- "CONTENT" => nil })
125
- else
126
- end
127
- @line_stack.push( { "STATUS" => HOST_ACCOUNT_START ,
128
- "CONTENT" => line })
129
- @status = HOST_ACCOUNT_START
130
- end
131
- end
132
- end
133
-
134
- i = @line_stack.size - 1
135
- seeking = true
136
- while i >= 0 and seeking
137
- case @line_stack[i]["STATUS"]
138
- when DOMAIN_ACCOUNT_START , DOMAIN_ACCOUNT
139
- @line_stack.push( { "STATUS" => DOMAIN_ACCOUNT_END ,
140
- "CONTENT" => nil })
141
- seeking = false
142
- when HOST_ACCOUNT_START , HOST_ACCOUNT
143
- @line_stack.push( { "STATUS" => HOST_ACCOUNT_END ,
144
- "CONTENT" => nil })
145
- seeking = false
146
- when ETC
147
- else
148
- seeking = false
149
- end
150
- i -= 1
151
- end
152
- end
153
- end
154
- 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,72 +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
9
- end
10
-
11
- def parse( str , parent_dir , valid = true )
12
- ary = str.split(/\s+/)
13
- perm = ary[0]
14
- if perm[0].chr == 'd'
15
- @type = :DIRECTORY
16
- else
17
- @type = :FILE
18
- end
19
- @perm = FilePermision.new( ary[0][1..9] )
20
- @value = ary[1]
21
- @user = ary[2]
22
- @group = ary[3]
23
- @size = ary[4]
24
- @month = ary[5]
25
- @day = ary[6]
26
- str = ary[7]
27
- if str =~ /:/
28
- @year = Time.now.year
29
- @time = str
30
- else
31
- @year = str
32
- @time = "00:00:00"
33
- end
34
-
35
- @time = ary[7]
36
- @name = ary[8]
37
- @path = File.join( parent_dir, @name )
38
- @parent_dir = parent_dir
39
- @valid = valid
40
- end
41
-
42
- def to_hash
43
- { "type" => @type, "perm" => @perm.to_hash, "value" => @value, "user" => @user , "group" => @group, "size" => @size, "month" => @month, "day" => @day, "year" => @year , "time" => @time, "name" => @name, "path" => @path, "parent_dir" => @parent_dir , "valid" => @valid }
44
- end
45
-
46
- def to_csv
47
- "#{@type},#{@perm.to_s},#{@value},#{@user},#{@group},#{@size},#{@year},#{@month},#{@day},#{@time},#{@name},#{@parent_dir},#{@valid}"
48
- end
49
-
50
- def directory?
51
- @type === :DIRECTORY
52
- end
53
-
54
- def file?
55
- @type === :FILE
56
- end
57
-
58
- def owner_perm
59
- @perm.owner
60
- end
61
-
62
- def group_perm
63
- @perm.group
64
- end
65
-
66
- def otherr_perm
67
- @perm.other
68
- end
69
- end
70
-
71
-
72
- 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,41 @@
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
+ }
38
+ Ykutils::Erubyx::erubi_render(template_hash, scope, hashx)
39
+ end
40
+ end
41
+ end