keystone 0.0.29

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.
Files changed (170) hide show
  1. data/.gitignore +3 -0
  2. data/README +3 -0
  3. data/Rakefile +26 -0
  4. data/VERSION +1 -0
  5. data/doc/classes/Dir.html +139 -0
  6. data/doc/classes/Dir.src/M000003.html +25 -0
  7. data/doc/classes/FlagSetMaker.html +138 -0
  8. data/doc/classes/FlagSetMaker.src/M000018.html +18 -0
  9. data/doc/classes/FlagSetMaker/FlagSet.html +186 -0
  10. data/doc/classes/FlagSetMaker/FlagSet.src/M000019.html +24 -0
  11. data/doc/classes/FlagSetMaker/FlagSet.src/M000020.html +26 -0
  12. data/doc/classes/FlagSetMaker/FlagSet.src/M000021.html +18 -0
  13. data/doc/classes/FlagSetMaker/FlagSet.src/M000022.html +18 -0
  14. data/doc/classes/FlagSetMaker/Flags.html +304 -0
  15. data/doc/classes/FlagSetMaker/Flags.src/M000023.html +19 -0
  16. data/doc/classes/FlagSetMaker/Flags.src/M000024.html +18 -0
  17. data/doc/classes/FlagSetMaker/Flags.src/M000025.html +18 -0
  18. data/doc/classes/FlagSetMaker/Flags.src/M000026.html +18 -0
  19. data/doc/classes/FlagSetMaker/Flags.src/M000027.html +18 -0
  20. data/doc/classes/FlagSetMaker/Flags.src/M000029.html +18 -0
  21. data/doc/classes/FlagSetMaker/Flags.src/M000030.html +18 -0
  22. data/doc/classes/FlagSetMaker/Flags.src/M000031.html +18 -0
  23. data/doc/classes/FlagSetMaker/Flags.src/M000032.html +18 -0
  24. data/doc/classes/FlagSetMaker/Flags.src/M000033.html +18 -0
  25. data/doc/classes/Hoge.html +113 -0
  26. data/doc/classes/Keystone.html +174 -0
  27. data/doc/classes/Keystone/Base.html +191 -0
  28. data/doc/classes/Keystone/Base.src/M000054.html +22 -0
  29. data/doc/classes/Keystone/Base.src/M000055.html +18 -0
  30. data/doc/classes/Keystone/Base.src/M000056.html +25 -0
  31. data/doc/classes/Keystone/Base.src/M000057.html +18 -0
  32. data/doc/classes/Keystone/Base.src/M000058.html +20 -0
  33. data/doc/classes/Keystone/Batch.html +115 -0
  34. data/doc/classes/Keystone/Batch/Base.html +208 -0
  35. data/doc/classes/Keystone/Batch/Base.src/M000052.html +54 -0
  36. data/doc/classes/Keystone/Batch/Base.src/M000053.html +30 -0
  37. data/doc/classes/Keystone/CoreExt.html +105 -0
  38. data/doc/classes/Keystone/Mail.html +115 -0
  39. data/doc/classes/Keystone/Mail/Send.html +171 -0
  40. data/doc/classes/Keystone/Mail/Send.src/M000034.html +18 -0
  41. data/doc/classes/Keystone/Mail/Send.src/M000035.html +42 -0
  42. data/doc/classes/Keystone/Mail/Send.src/M000036.html +18 -0
  43. data/doc/classes/Keystone/Os.html +184 -0
  44. data/doc/classes/Keystone/Os.src/M000037.html +18 -0
  45. data/doc/classes/Keystone/Os.src/M000038.html +27 -0
  46. data/doc/classes/Keystone/Os/AbstractOs.html +227 -0
  47. data/doc/classes/Keystone/Os/AbstractOs.src/M000046.html +17 -0
  48. data/doc/classes/Keystone/Os/AbstractOs.src/M000047.html +17 -0
  49. data/doc/classes/Keystone/Os/AbstractOs.src/M000048.html +17 -0
  50. data/doc/classes/Keystone/Os/AbstractOs.src/M000049.html +17 -0
  51. data/doc/classes/Keystone/Os/AbstractOs.src/M000050.html +17 -0
  52. data/doc/classes/Keystone/Os/AbstractOs.src/M000051.html +25 -0
  53. data/doc/classes/Keystone/Os/Centos.html +113 -0
  54. data/doc/classes/Keystone/Os/Darwin.html +139 -0
  55. data/doc/classes/Keystone/Os/Darwin.src/M000039.html +18 -0
  56. data/doc/classes/Keystone/Os/Linux.html +139 -0
  57. data/doc/classes/Keystone/Os/Linux.src/M000045.html +26 -0
  58. data/doc/classes/Keystone/Os/Osx.html +113 -0
  59. data/doc/classes/Keystone/Os/Unix.html +199 -0
  60. data/doc/classes/Keystone/Os/Unix.src/M000040.html +27 -0
  61. data/doc/classes/Keystone/Os/Unix.src/M000041.html +18 -0
  62. data/doc/classes/Keystone/Os/Unix.src/M000042.html +18 -0
  63. data/doc/classes/Keystone/Os/Unix.src/M000043.html +18 -0
  64. data/doc/classes/Keystone/Os/Unix.src/M000044.html +18 -0
  65. data/doc/classes/Keystone/Rails.html +105 -0
  66. data/doc/classes/Keystone/StringUtil.html +226 -0
  67. data/doc/classes/Keystone/StringUtil.src/M000059.html +43 -0
  68. data/doc/classes/Keystone/StringUtil.src/M000060.html +25 -0
  69. data/doc/classes/Keystone/StringUtil.src/M000061.html +24 -0
  70. data/doc/classes/Keystone/StringUtil.src/M000062.html +18 -0
  71. data/doc/classes/Keystone/StringUtil.src/M000063.html +21 -0
  72. data/doc/classes/Object.html +240 -0
  73. data/doc/classes/Object.src/M000012.html +18 -0
  74. data/doc/classes/Object.src/M000013.html +20 -0
  75. data/doc/classes/Object.src/M000014.html +18 -0
  76. data/doc/classes/Object.src/M000015.html +18 -0
  77. data/doc/classes/Object.src/M000016.html +18 -0
  78. data/doc/classes/Object.src/M000017.html +19 -0
  79. data/doc/classes/Tempfile.html +139 -0
  80. data/doc/classes/Tempfile.src/M000011.html +25 -0
  81. data/doc/classes/TestCoreExt.html +152 -0
  82. data/doc/classes/TestCoreExt.src/M000009.html +17 -0
  83. data/doc/classes/TestCoreExt.src/M000010.html +21 -0
  84. data/doc/classes/TestStringUtilBase.html +197 -0
  85. data/doc/classes/TestStringUtilBase.src/M000004.html +17 -0
  86. data/doc/classes/TestStringUtilBase.src/M000005.html +23 -0
  87. data/doc/classes/TestStringUtilBase.src/M000006.html +22 -0
  88. data/doc/classes/TestStringUtilBase.src/M000007.html +25 -0
  89. data/doc/classes/TestStringUtilBase.src/M000008.html +34 -0
  90. data/doc/classes/Uri.html +158 -0
  91. data/doc/classes/Uri.src/M000001.html +18 -0
  92. data/doc/classes/Uri.src/M000002.html +18 -0
  93. data/doc/created.rid +1 -0
  94. data/doc/files/example/batch_sample_rb.html +134 -0
  95. data/doc/files/example/os_rb.html +109 -0
  96. data/doc/files/example/string_util_rb.html +109 -0
  97. data/doc/files/lib/keystone/base_rb.html +101 -0
  98. data/doc/files/lib/keystone/batch/base_rb.html +108 -0
  99. data/doc/files/lib/keystone/batch_rb.html +101 -0
  100. data/doc/files/lib/keystone/core_ext/array_rb.html +101 -0
  101. data/doc/files/lib/keystone/core_ext/blank_rb.html +101 -0
  102. data/doc/files/lib/keystone/core_ext/dir_rb.html +101 -0
  103. data/doc/files/lib/keystone/core_ext/object_rb.html +101 -0
  104. data/doc/files/lib/keystone/core_ext/tempfile_rb.html +108 -0
  105. data/doc/files/lib/keystone/core_ext/uri_rb.html +101 -0
  106. data/doc/files/lib/keystone/core_ext_rb.html +113 -0
  107. data/doc/files/lib/keystone/mail/send_rb.html +115 -0
  108. data/doc/files/lib/keystone/mail_rb.html +101 -0
  109. data/doc/files/lib/keystone/os/abstract_os_rb.html +101 -0
  110. data/doc/files/lib/keystone/os/centos_rb.html +101 -0
  111. data/doc/files/lib/keystone/os/darwin_rb.html +101 -0
  112. data/doc/files/lib/keystone/os/linux_rb.html +101 -0
  113. data/doc/files/lib/keystone/os/osx_rb.html +101 -0
  114. data/doc/files/lib/keystone/os/unix_rb.html +101 -0
  115. data/doc/files/lib/keystone/os_rb.html +108 -0
  116. data/doc/files/lib/keystone/string_util_rb.html +101 -0
  117. data/doc/files/lib/keystone_rb.html +116 -0
  118. data/doc/files/test/test_core_ext_rb.html +110 -0
  119. data/doc/files/test/test_string_util_rb.html +112 -0
  120. data/doc/files/vendor/flag_set_maker_rb.html +108 -0
  121. data/doc/files/vendor/moji_rb.html +118 -0
  122. data/doc/fr_class_index.html +52 -0
  123. data/doc/fr_file_index.html +54 -0
  124. data/doc/fr_method_index.html +89 -0
  125. data/doc/index.html +24 -0
  126. data/doc/rdoc-style.css +208 -0
  127. data/example/batch_sample.rb +24 -0
  128. data/example/os.rb +4 -0
  129. data/example/sendmail.rb +21 -0
  130. data/example/string_util.rb +15 -0
  131. data/keystone.gemspec +209 -0
  132. data/lib/keystone.rb +25 -0
  133. data/lib/keystone/base.rb +75 -0
  134. data/lib/keystone/batch.rb +5 -0
  135. data/lib/keystone/batch/base.rb +217 -0
  136. data/lib/keystone/core_ext.rb +18 -0
  137. data/lib/keystone/core_ext/array.rb +29 -0
  138. data/lib/keystone/core_ext/blank.rb +44 -0
  139. data/lib/keystone/core_ext/dir.rb +16 -0
  140. data/lib/keystone/core_ext/ipaddr.rb +18 -0
  141. data/lib/keystone/core_ext/object.rb +34 -0
  142. data/lib/keystone/core_ext/tempfile.rb +14 -0
  143. data/lib/keystone/core_ext/uri.rb +14 -0
  144. data/lib/keystone/mail.rb +8 -0
  145. data/lib/keystone/mail/address.rb +92 -0
  146. data/lib/keystone/mail/content_type.rb +60 -0
  147. data/lib/keystone/mail/message.rb +102 -0
  148. data/lib/keystone/mail/message_factory.rb +18 -0
  149. data/lib/keystone/mail/message_iso2022jp.rb +126 -0
  150. data/lib/keystone/mail/message_sjis.rb +23 -0
  151. data/lib/keystone/mail/receive.rb +320 -0
  152. data/lib/keystone/mail/send.rb +83 -0
  153. data/lib/keystone/os.rb +26 -0
  154. data/lib/keystone/os/abstract_os.rb +36 -0
  155. data/lib/keystone/os/centos.rb +6 -0
  156. data/lib/keystone/os/darwin.rb +9 -0
  157. data/lib/keystone/os/linux.rb +15 -0
  158. data/lib/keystone/os/osx.rb +18 -0
  159. data/lib/keystone/os/unix.rb +43 -0
  160. data/lib/keystone/string_util.rb +85 -0
  161. data/test/test_core_ext.rb +15 -0
  162. data/test/test_string_util.rb +60 -0
  163. data/util/README +1 -0
  164. data/util/bin/command_broadcast.rb +137 -0
  165. data/util/bin/disk_size_check.rb +54 -0
  166. data/util/bin/notice +93 -0
  167. data/util/bin/ve2tar.rb +80 -0
  168. data/vendor/flag_set_maker.rb +121 -0
  169. data/vendor/moji.rb +502 -0
  170. metadata +236 -0
@@ -0,0 +1,24 @@
1
+ require 'rubygems'
2
+ require 'keystone'
3
+ require "optparse"
4
+
5
+ include Keystone::Batch::Base
6
+
7
+ # 実行時に--helpでオプション一覧
8
+
9
+ has_option = {}
10
+ opts = option_parser
11
+ opts.on("-v value") do |v|
12
+ has_option[:v] = v
13
+ end
14
+ opts.on("-w who") do |v|
15
+ has_option[:w] = v
16
+ end
17
+
18
+ execute() do
19
+ sleep 10
20
+ info "batch process01"
21
+ info "who=#{has_option[:w]}"
22
+ sleep 4
23
+ raise 'error occur'
24
+ end
data/example/os.rb ADDED
@@ -0,0 +1,4 @@
1
+ require 'rubygems'
2
+ require 'keystone'
3
+
4
+ puts Keystone::Os.get().dump
@@ -0,0 +1,21 @@
1
+ require 'rubygems'
2
+ require 'keystone'
3
+ require 'pit'
4
+
5
+ ENV["EDITOR"] = "vi" unless ENV.key?("EDITOR")
6
+
7
+ config = Pit.get("keystone_test", :require => {
8
+ "smtp_addr" => "smtp_server_address",
9
+ "mailto" => "mailto",
10
+ "mailfrom" => "mailfrom"
11
+ })
12
+
13
+ @os = Keystone::Os.get()
14
+
15
+ Keystone::Mail::Send.send(
16
+ config["mailfrom"],
17
+ config["mailto"].split(","),
18
+ "件名でおま",
19
+ "本文で小間\nfrom #{@os.hostname}(#{@os.ip_address.join(" , ")})",
20
+ {:smtp_addr=>config["smtp_addr"],:retry_cnt=>3})
21
+
@@ -0,0 +1,15 @@
1
+ require 'rubygems'
2
+ require 'keystone'
3
+
4
+ st = %|test "test 02" 日本語 ニホンゴハンカク "にほ んご ですが なにか"|
5
+ st2 = Keystone::StringUtil.to_searchtext(st)
6
+
7
+ p Keystone::StringUtil.serach_string_to_array(st)
8
+ p Keystone::StringUtil.serach_string_to_array(st2)
9
+
10
+ info("test")
11
+ info("test\ntest2")
12
+ info("test\r\ntest2")
13
+ warn("test\rtest2")
14
+ error("test\ntest2")
15
+ info("test")
data/keystone.gemspec ADDED
@@ -0,0 +1,209 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{keystone}
8
+ s.version = "0.0.29"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["paco"]
12
+ s.date = %q{2010-09-02}
13
+ s.description = %q{oreore library}
14
+ s.email = %q{paco.jp@gmail.com}
15
+ s.extra_rdoc_files = [
16
+ "README"
17
+ ]
18
+ s.files = [
19
+ ".gitignore",
20
+ "README",
21
+ "Rakefile",
22
+ "VERSION",
23
+ "doc/classes/Dir.html",
24
+ "doc/classes/Dir.src/M000003.html",
25
+ "doc/classes/FlagSetMaker.html",
26
+ "doc/classes/FlagSetMaker.src/M000018.html",
27
+ "doc/classes/FlagSetMaker/FlagSet.html",
28
+ "doc/classes/FlagSetMaker/FlagSet.src/M000019.html",
29
+ "doc/classes/FlagSetMaker/FlagSet.src/M000020.html",
30
+ "doc/classes/FlagSetMaker/FlagSet.src/M000021.html",
31
+ "doc/classes/FlagSetMaker/FlagSet.src/M000022.html",
32
+ "doc/classes/FlagSetMaker/Flags.html",
33
+ "doc/classes/FlagSetMaker/Flags.src/M000023.html",
34
+ "doc/classes/FlagSetMaker/Flags.src/M000024.html",
35
+ "doc/classes/FlagSetMaker/Flags.src/M000025.html",
36
+ "doc/classes/FlagSetMaker/Flags.src/M000026.html",
37
+ "doc/classes/FlagSetMaker/Flags.src/M000027.html",
38
+ "doc/classes/FlagSetMaker/Flags.src/M000029.html",
39
+ "doc/classes/FlagSetMaker/Flags.src/M000030.html",
40
+ "doc/classes/FlagSetMaker/Flags.src/M000031.html",
41
+ "doc/classes/FlagSetMaker/Flags.src/M000032.html",
42
+ "doc/classes/FlagSetMaker/Flags.src/M000033.html",
43
+ "doc/classes/Hoge.html",
44
+ "doc/classes/Keystone.html",
45
+ "doc/classes/Keystone/Base.html",
46
+ "doc/classes/Keystone/Base.src/M000054.html",
47
+ "doc/classes/Keystone/Base.src/M000055.html",
48
+ "doc/classes/Keystone/Base.src/M000056.html",
49
+ "doc/classes/Keystone/Base.src/M000057.html",
50
+ "doc/classes/Keystone/Base.src/M000058.html",
51
+ "doc/classes/Keystone/Batch.html",
52
+ "doc/classes/Keystone/Batch/Base.html",
53
+ "doc/classes/Keystone/Batch/Base.src/M000052.html",
54
+ "doc/classes/Keystone/Batch/Base.src/M000053.html",
55
+ "doc/classes/Keystone/CoreExt.html",
56
+ "doc/classes/Keystone/Mail.html",
57
+ "doc/classes/Keystone/Mail/Send.html",
58
+ "doc/classes/Keystone/Mail/Send.src/M000034.html",
59
+ "doc/classes/Keystone/Mail/Send.src/M000035.html",
60
+ "doc/classes/Keystone/Mail/Send.src/M000036.html",
61
+ "doc/classes/Keystone/Os.html",
62
+ "doc/classes/Keystone/Os.src/M000037.html",
63
+ "doc/classes/Keystone/Os.src/M000038.html",
64
+ "doc/classes/Keystone/Os/AbstractOs.html",
65
+ "doc/classes/Keystone/Os/AbstractOs.src/M000046.html",
66
+ "doc/classes/Keystone/Os/AbstractOs.src/M000047.html",
67
+ "doc/classes/Keystone/Os/AbstractOs.src/M000048.html",
68
+ "doc/classes/Keystone/Os/AbstractOs.src/M000049.html",
69
+ "doc/classes/Keystone/Os/AbstractOs.src/M000050.html",
70
+ "doc/classes/Keystone/Os/AbstractOs.src/M000051.html",
71
+ "doc/classes/Keystone/Os/Centos.html",
72
+ "doc/classes/Keystone/Os/Darwin.html",
73
+ "doc/classes/Keystone/Os/Darwin.src/M000039.html",
74
+ "doc/classes/Keystone/Os/Linux.html",
75
+ "doc/classes/Keystone/Os/Linux.src/M000045.html",
76
+ "doc/classes/Keystone/Os/Osx.html",
77
+ "doc/classes/Keystone/Os/Unix.html",
78
+ "doc/classes/Keystone/Os/Unix.src/M000040.html",
79
+ "doc/classes/Keystone/Os/Unix.src/M000041.html",
80
+ "doc/classes/Keystone/Os/Unix.src/M000042.html",
81
+ "doc/classes/Keystone/Os/Unix.src/M000043.html",
82
+ "doc/classes/Keystone/Os/Unix.src/M000044.html",
83
+ "doc/classes/Keystone/Rails.html",
84
+ "doc/classes/Keystone/StringUtil.html",
85
+ "doc/classes/Keystone/StringUtil.src/M000059.html",
86
+ "doc/classes/Keystone/StringUtil.src/M000060.html",
87
+ "doc/classes/Keystone/StringUtil.src/M000061.html",
88
+ "doc/classes/Keystone/StringUtil.src/M000062.html",
89
+ "doc/classes/Keystone/StringUtil.src/M000063.html",
90
+ "doc/classes/Object.html",
91
+ "doc/classes/Object.src/M000012.html",
92
+ "doc/classes/Object.src/M000013.html",
93
+ "doc/classes/Object.src/M000014.html",
94
+ "doc/classes/Object.src/M000015.html",
95
+ "doc/classes/Object.src/M000016.html",
96
+ "doc/classes/Object.src/M000017.html",
97
+ "doc/classes/Tempfile.html",
98
+ "doc/classes/Tempfile.src/M000011.html",
99
+ "doc/classes/TestCoreExt.html",
100
+ "doc/classes/TestCoreExt.src/M000009.html",
101
+ "doc/classes/TestCoreExt.src/M000010.html",
102
+ "doc/classes/TestStringUtilBase.html",
103
+ "doc/classes/TestStringUtilBase.src/M000004.html",
104
+ "doc/classes/TestStringUtilBase.src/M000005.html",
105
+ "doc/classes/TestStringUtilBase.src/M000006.html",
106
+ "doc/classes/TestStringUtilBase.src/M000007.html",
107
+ "doc/classes/TestStringUtilBase.src/M000008.html",
108
+ "doc/classes/Uri.html",
109
+ "doc/classes/Uri.src/M000001.html",
110
+ "doc/classes/Uri.src/M000002.html",
111
+ "doc/created.rid",
112
+ "doc/files/example/batch_sample_rb.html",
113
+ "doc/files/example/os_rb.html",
114
+ "doc/files/example/string_util_rb.html",
115
+ "doc/files/lib/keystone/base_rb.html",
116
+ "doc/files/lib/keystone/batch/base_rb.html",
117
+ "doc/files/lib/keystone/batch_rb.html",
118
+ "doc/files/lib/keystone/core_ext/array_rb.html",
119
+ "doc/files/lib/keystone/core_ext/blank_rb.html",
120
+ "doc/files/lib/keystone/core_ext/dir_rb.html",
121
+ "doc/files/lib/keystone/core_ext/object_rb.html",
122
+ "doc/files/lib/keystone/core_ext/tempfile_rb.html",
123
+ "doc/files/lib/keystone/core_ext/uri_rb.html",
124
+ "doc/files/lib/keystone/core_ext_rb.html",
125
+ "doc/files/lib/keystone/mail/send_rb.html",
126
+ "doc/files/lib/keystone/mail_rb.html",
127
+ "doc/files/lib/keystone/os/abstract_os_rb.html",
128
+ "doc/files/lib/keystone/os/centos_rb.html",
129
+ "doc/files/lib/keystone/os/darwin_rb.html",
130
+ "doc/files/lib/keystone/os/linux_rb.html",
131
+ "doc/files/lib/keystone/os/osx_rb.html",
132
+ "doc/files/lib/keystone/os/unix_rb.html",
133
+ "doc/files/lib/keystone/os_rb.html",
134
+ "doc/files/lib/keystone/string_util_rb.html",
135
+ "doc/files/lib/keystone_rb.html",
136
+ "doc/files/test/test_core_ext_rb.html",
137
+ "doc/files/test/test_string_util_rb.html",
138
+ "doc/files/vendor/flag_set_maker_rb.html",
139
+ "doc/files/vendor/moji_rb.html",
140
+ "doc/fr_class_index.html",
141
+ "doc/fr_file_index.html",
142
+ "doc/fr_method_index.html",
143
+ "doc/index.html",
144
+ "doc/rdoc-style.css",
145
+ "example/batch_sample.rb",
146
+ "example/os.rb",
147
+ "example/sendmail.rb",
148
+ "example/string_util.rb",
149
+ "keystone.gemspec",
150
+ "lib/keystone.rb",
151
+ "lib/keystone/base.rb",
152
+ "lib/keystone/batch.rb",
153
+ "lib/keystone/batch/base.rb",
154
+ "lib/keystone/core_ext.rb",
155
+ "lib/keystone/core_ext/array.rb",
156
+ "lib/keystone/core_ext/blank.rb",
157
+ "lib/keystone/core_ext/dir.rb",
158
+ "lib/keystone/core_ext/ipaddr.rb",
159
+ "lib/keystone/core_ext/object.rb",
160
+ "lib/keystone/core_ext/tempfile.rb",
161
+ "lib/keystone/core_ext/uri.rb",
162
+ "lib/keystone/mail.rb",
163
+ "lib/keystone/mail/address.rb",
164
+ "lib/keystone/mail/content_type.rb",
165
+ "lib/keystone/mail/message.rb",
166
+ "lib/keystone/mail/message_factory.rb",
167
+ "lib/keystone/mail/message_iso2022jp.rb",
168
+ "lib/keystone/mail/message_sjis.rb",
169
+ "lib/keystone/mail/receive.rb",
170
+ "lib/keystone/mail/send.rb",
171
+ "lib/keystone/os.rb",
172
+ "lib/keystone/os/abstract_os.rb",
173
+ "lib/keystone/os/centos.rb",
174
+ "lib/keystone/os/darwin.rb",
175
+ "lib/keystone/os/linux.rb",
176
+ "lib/keystone/os/osx.rb",
177
+ "lib/keystone/os/unix.rb",
178
+ "lib/keystone/string_util.rb",
179
+ "test/test_core_ext.rb",
180
+ "test/test_string_util.rb",
181
+ "util/README",
182
+ "util/bin/command_broadcast.rb",
183
+ "util/bin/disk_size_check.rb",
184
+ "util/bin/notice",
185
+ "util/bin/ve2tar.rb",
186
+ "vendor/flag_set_maker.rb",
187
+ "vendor/moji.rb"
188
+ ]
189
+ s.homepage = %q{http://github.com/kanamei/keystone}
190
+ s.rdoc_options = ["--charset=UTF-8"]
191
+ s.require_paths = ["lib"]
192
+ s.rubygems_version = %q{1.3.7}
193
+ s.summary = %q{oreore library}
194
+ s.test_files = [
195
+ "test/test_core_ext.rb",
196
+ "test/test_string_util.rb"
197
+ ]
198
+
199
+ if s.respond_to? :specification_version then
200
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
201
+ s.specification_version = 3
202
+
203
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
204
+ else
205
+ end
206
+ else
207
+ end
208
+ end
209
+
data/lib/keystone.rb ADDED
@@ -0,0 +1,25 @@
1
+
2
+ $KCODE = 'u'
3
+
4
+ require 'keystone/core_ext'
5
+ require 'keystone/base'
6
+
7
+ include Keystone::Base
8
+
9
+ autoload :FlagSetMaker , 'vendor/flag_set_maker'
10
+ autoload :Moji , 'vendor/moji'
11
+
12
+ module Keystone
13
+
14
+ VERSION = '0.0.27'
15
+
16
+ autoload :StringUtil , 'keystone/string_util'
17
+ autoload :Batch , 'keystone/batch'
18
+ autoload :Os , 'keystone/os'
19
+ autoload :Mail , 'keystone/mail'
20
+
21
+ module Rails
22
+ #autoload :ActiveSupportExt, 'keystone/rails/active_support_ext'
23
+ end
24
+ end
25
+
@@ -0,0 +1,75 @@
1
+ module Keystone
2
+
3
+ #
4
+ # ログレベルに関してのローカルルール(ログ確認に関して)
5
+ # debug 対応不要
6
+ # info 対応不要
7
+ # warn 複数個で営業時間内対応
8
+ # notice 1つで営業時間内対応
9
+ # error 1つで営業時間内対応
10
+ # alert 複数個で即時対応
11
+ # critical 1つで即時対応
12
+ #
13
+ module Base
14
+ def log(log_type,message, is_base_info = true)
15
+
16
+ # ......nangiyana
17
+ message.gsub!(/\r\n/,"\n")
18
+ message.gsub!(/\r/,"\n")
19
+
20
+ messages = message.split("\n")
21
+ if messages.size > 1
22
+ messages.each_with_index do |st,i|
23
+ if i == 0
24
+ puts "[#{Time.now.strftime("%Y/%m/%d %H:%M:%S")}][#{$$}][#{log_type.to_s}] #{st}"
25
+ else
26
+ puts "[#{log_type.to_s}] #{st}"
27
+ end
28
+ end
29
+ else
30
+ if is_base_info
31
+ puts "[#{Time.now.strftime("%Y/%m/%d %H:%M:%S")}][#{$$}][#{log_type.to_s}] #{message}"
32
+ else
33
+ puts "[#{log_type.to_s}] #{message}"
34
+ end
35
+ end
36
+ end
37
+
38
+ def error(message)
39
+ if message.is_a? Exception
40
+ log(:ERROR,"#{message.message}")
41
+ message.backtrace.each_with_index {|line, i|
42
+ log(:ERROR,"#{line})",false)
43
+ }
44
+ else
45
+ log(:ERROR,message.to_s)
46
+ end
47
+ end
48
+
49
+ def info(message)
50
+ log(:INFO,message)
51
+ end
52
+
53
+ def warn(message)
54
+ log(:WARN,message)
55
+ end
56
+
57
+ def notice(message)
58
+ log(:NOTICE,message)
59
+ end
60
+
61
+ def alert(message)
62
+ log(:ALERT,message)
63
+ end
64
+
65
+ def critical(message)
66
+ log(:CRIT,message)
67
+ end
68
+
69
+ def debug(message)
70
+ if $DEBUG
71
+ log(:DEBUG,message)
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,5 @@
1
+ module Keystone
2
+ module Batch
3
+ autoload :Base , 'keystone/batch/base'
4
+ end
5
+ end
@@ -0,0 +1,217 @@
1
+ require 'digest/md5'
2
+ require "optparse"
3
+
4
+ module Keystone::Batch
5
+ #
6
+ # = バッチをざくっと書きたい時用モジュール
7
+ #
8
+ # 基本的にはexecuteメソッドにバッチ処理をブロックで渡す
9
+ #
10
+ # == 定数
11
+ #
12
+ # ERROR_MAIL_TO (エラーメール送信先) 設定しておけば自動でエラーメールを送信してくれる
13
+ #
14
+ # ERROR_MAIL_FROM (エラーメール送信元) 設定されてない場合はERROR_MAIL_TOを使用
15
+ #
16
+ # ERROR_MAIL_STMP_ADDR (エラーメール送信SMTPアドレス) 設定されてない場合は"127.0.0.1"
17
+ #
18
+ # ERROR_MAIL_STMP_PORT (エラーメール送信SMTPポート) 設定されてない場合は25
19
+ #
20
+ module Base
21
+ def option_parser
22
+ @options ||= OptionParser.new
23
+ end
24
+
25
+ # [options]
26
+ # プログラムより指定するバッチ動作オプション(ハッシュ値)
27
+ # :error_mail_to
28
+ # :error_mail_from
29
+ # :error_mail_smtp_addr
30
+ # :error_mail_smtp_port
31
+ # :double_process_check
32
+ # :auto_recover
33
+ #
34
+ # バッチの主処理をこのメソッドへのブロック引数として定義してください
35
+ #
36
+ # require 'rubygems'
37
+ # require 'keystone'
38
+ #
39
+ # include Keystone::Batch::Base
40
+ #
41
+ # execute() do
42
+ # info "batch process01"
43
+ # end
44
+ #
45
+ # railsのscript/runnerで使用する場合はscript/runnerを以下の感じでいじってから使用してください
46
+ #
47
+ # #!/usr/bin/env ruby
48
+ #
49
+ # #original add start
50
+ # ARGV_ORIGINAL = ARGV.clone
51
+ # ARGV.delete("-h")
52
+ # ARGV.delete("--help")
53
+ # #original add end
54
+ #
55
+ # require File.dirname(__FILE__) + '/../config/boot'
56
+ # require 'commands/runner'
57
+ #
58
+ def execute(options={},&process)
59
+
60
+ options[:error_mail_to] = nil unless options.key?(:error_mail_to)
61
+ options[:error_mail_from] = nil unless options.key?(:error_mail_from)
62
+ options[:error_mail_smtp_addr] = "127.0.0.1" unless options.key?(:error_mail_smtp_addr)
63
+ options[:error_mail_smtp_port] = 25 unless options.key?(:error_mail_smtp_port)
64
+ options[:double_process_check] = true unless options.key?(:double_process_check)
65
+ options[:auto_recover] = true unless options.key?(:auto_recover)
66
+
67
+ double_process_check = options[:double_process_check]
68
+ auto_recover = options[:auto_recover]
69
+
70
+ opts = option_parser()
71
+ pg_path = nil
72
+
73
+ # 2010/03/10 追加機能 まだrailsバッチ以外での動作をテストしてません
74
+ opts.on("--not_rails","set if this batch is not rails batch") do |v|
75
+ ;
76
+ end
77
+
78
+ if Module.constants.include?("ARGV_ORIGINAL")
79
+
80
+ debug "ARGV_ORIGINAL found!!"
81
+
82
+ ARGV << "-h" if ARGV_ORIGINAL.include?("-h")
83
+ ARGV << "--help" if ARGV_ORIGINAL.include?("--help")
84
+ script_name = File.basename(ARGV_ORIGINAL[0])
85
+ pg_path = File.expand_path(script_name)
86
+ opts.banner = "Usage: script/runner #{script_name} [options]"
87
+
88
+ debug "pg_path=#{pg_path}"
89
+ opts.on("-e", "--environment=name",
90
+ String,"specifies the environment for the runner to operate under (test/development/production).",
91
+ "default: development")
92
+ else
93
+ debug "caller=#{caller}"
94
+ pg_path = if File.expand_path(caller[0]) =~ /(.*):\d*\z/
95
+ $1
96
+ else
97
+ raise "must not happen!! can not get caller value"
98
+ end
99
+
100
+ #
101
+ unless ARGV.include?("--not_rails")
102
+ opts.on("-e", "--environment=name",
103
+ String,"specifies the environment for the runner to operate under (test/development/production).",
104
+ "default: development")
105
+ end
106
+ end
107
+
108
+ opts.on("-h","--help","show this help message.") { $stderr.puts opts; exit }
109
+
110
+ pid_file = nil
111
+ opts.on("--lockfile LOCK_FILE_PATH","set lock file path") do |v|
112
+ double_process_check = true unless double_process_check
113
+ pid_file = v
114
+ end
115
+ opts.on("--double_process_check_off","disable double process check") do |v|
116
+ double_process_check = false
117
+ end
118
+ opts.on("--auto_recover_off","disable auto recover mode") do |v|
119
+ auto_recover = false
120
+ end
121
+ opts.on("--error_mail_to MAIL_ADDR") do |v|
122
+ options[:error_mail_to] = v
123
+ end
124
+ opts.on("--error_mail_from MAIL_ADDR") do |v|
125
+ options[:error_mail_from] = v
126
+ end
127
+ opts.on("--error_mail_smtp_addr IP_ADDR") do |v|
128
+ options[:error_mail_smtp_addr] = v
129
+ end
130
+ opts.on("--error_mail_smtp_port PORT") do |v|
131
+ options[:error_mail_smtp_port] = Integer(v)
132
+ end
133
+
134
+ opts.parse!(ARGV)
135
+
136
+ info "start script(#{pg_path})"
137
+ script_started_at = Time.now
138
+ double_process_check_worked = false
139
+ begin
140
+ # double process check
141
+ if double_process_check
142
+ #pg_path = File.expand_path($0)
143
+ pg_name = File.basename(pg_path)
144
+ hash = Digest::MD5.hexdigest(pg_path)
145
+ pid_file = "/tmp/.#{pg_name}.#{hash}.pid" unless pid_file
146
+ debug pid_file
147
+ if File.exists?(pid_file)
148
+ pid = File.open(pid_file).read.chomp
149
+ pid_list = `ps ax | awk '{print $1}'`
150
+ if (pid != nil && pid != "" ) && pid_list =~ /#{pid}/
151
+ warn "pid:#{pid} still running"
152
+ double_process_check_worked = true
153
+ return nil
154
+ else
155
+ if auto_recover
156
+ warn "lock file still exists[pid=#{pid}],but process does not found.auto_recover enabled.so process continues"
157
+ else
158
+ double_process_check_worked = true
159
+ raise "lock file still exists[pid=#{pid}],but process does not found.auto_recover disabled.so process can not continue"
160
+ end
161
+ end
162
+ end
163
+ File.open(pid_file, "w"){|file|
164
+ file.write $$
165
+ }
166
+ end
167
+ return (yield process)
168
+ rescue => e
169
+ error e
170
+ send_error_mail(e,options)
171
+ ensure
172
+ unless double_process_check_worked
173
+ File.delete(pid_file) if double_process_check
174
+ end
175
+ info "finish script (%1.3fsec)" % (Time.now - script_started_at)
176
+ end
177
+ end
178
+
179
+ #
180
+ # = エラーメール送信メソッド
181
+ # エクセプションを何も考えずにメールにて送信する
182
+ #  各種メール送信属性は定数にて渡す
183
+ #
184
+ # [exception]
185
+ # エクセプションクラスインスタンス
186
+ #
187
+ def send_error_mail(exception,options)
188
+ if options[:error_mail_to]
189
+ host = Keystone::Os.get()
190
+ title = %|error occur at "#{host.hostname}" [#{exception.message}]|
191
+
192
+ mail_to = options[:error_mail_to]
193
+ mail_to = [mail_to] if mail_to.is_a?(String)
194
+ mail_from = options[:error_mail_from] ? options[:error_mail_from] : mail_to[0]
195
+ smtp_addr = options[:error_mail_smtp_addr]
196
+ smtp_port = options[:error_mail_smtp_port]
197
+
198
+ debug "mail_to=#{mail_to}"
199
+ debug "mail_from=#{mail_from}"
200
+ debug "smtp_addr=#{smtp_addr}"
201
+ debug "smtp_port=#{smtp_port}"
202
+
203
+ body = <<-BODY
204
+ ==== error message ====
205
+ #{exception.message}
206
+ ====== backtrace ======
207
+ #{exception.backtrace.join("\n")}
208
+ ===== environment =====
209
+ #{host.dump}
210
+ BODY
211
+ Keystone::Mail::Send.send(mail_from,mail_to,title,body,{:smtp_addr=>smtp_addr,:smtp_port=>smtp_port})
212
+ else
213
+ warn "ERROR_MAIL_TO not defined.if you want error mail automatically,set this value."
214
+ end
215
+ end
216
+ end
217
+ end