rbatch 1.13.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. data/CHANGELOG +15 -0
  2. data/README.ja.md +81 -49
  3. data/README.md +88 -63
  4. data/Rakefile +2 -31
  5. data/bin/rbatch-init +57 -32
  6. data/{rdocs → doc}/RBatch/Cmd.html +66 -59
  7. data/{rdocs → doc}/RBatch/CmdException.html +9 -3
  8. data/{rdocs → doc}/RBatch/CmdResult.html +40 -34
  9. data/{rdocs → doc}/RBatch/CommonConfig/Exception.html +9 -3
  10. data/{rdocs → doc}/RBatch/CommonConfig.html +22 -17
  11. data/{rdocs → doc}/RBatch/Config/Exception.html +9 -3
  12. data/{rdocs → doc}/RBatch/Config.html +21 -16
  13. data/{rdocs/RBatchException.html → doc/RBatch/DoubleRunCheckException.html} +33 -30
  14. data/doc/RBatch/DoubleRunChecker.html +277 -0
  15. data/{rdocs → doc}/RBatch/Log.html +134 -138
  16. data/doc/RBatch/RunConf/Exception.html +159 -0
  17. data/doc/RBatch/RunConf.html +557 -0
  18. data/doc/RBatch.html +655 -0
  19. data/doc/created.rid +9 -0
  20. data/{rdocs → doc}/index.html +46 -20
  21. data/{rdocs → doc}/lib/rbatch/cmd_rb.html +4 -2
  22. data/{rdocs → doc}/lib/rbatch/common_config_rb.html +2 -2
  23. data/{rdocs → doc}/lib/rbatch/config_rb.html +2 -2
  24. data/doc/lib/rbatch/double_run_checker_rb.html +56 -0
  25. data/{rdocs → doc}/lib/rbatch/log_rb.html +2 -2
  26. data/doc/lib/rbatch/run_conf_rb.html +56 -0
  27. data/{rdocs → doc}/lib/rbatch/version_rb.html +2 -2
  28. data/{rdocs → doc}/lib/rbatch_rb.html +7 -3
  29. data/lib/rbatch/cmd.rb +20 -23
  30. data/lib/rbatch/common_config.rb +2 -3
  31. data/lib/rbatch/config.rb +1 -2
  32. data/lib/rbatch/double_run_checker.rb +24 -0
  33. data/lib/rbatch/log.rb +37 -59
  34. data/lib/rbatch/run_conf.rb +109 -0
  35. data/lib/rbatch/version.rb +1 -1
  36. data/lib/rbatch.rb +37 -56
  37. data/spec/{cmd_test.spec → cmd_spec.rb} +6 -6
  38. data/spec/common_config_spec.rb +54 -0
  39. data/spec/{config_test.spec → config_spec.rb} +2 -1
  40. data/spec/double_run_checker_spec.rb +10 -0
  41. data/spec/{log_test.spec → log_spec.rb} +22 -22
  42. data/spec/rbatch_spec.rb +24 -0
  43. data/spec/run_conf_spec.rb +85 -0
  44. metadata +66 -65
  45. data/rdocs/RBatch.html +0 -713
  46. data/rdocs/created.rid +0 -7
  47. data/spec/rbatch_test.spec +0 -25
  48. data/test/cases/test_cmd.rb +0 -134
  49. data/test/cases/test_common_config.rb +0 -41
  50. data/test/cases/test_config.rb +0 -41
  51. data/test/cases/test_log.rb +0 -613
  52. data/test/mocks/PrintArgs.exe +0 -0
  53. data/test/mocks/win_cmd.exe +0 -0
  54. /data/{rdocs → doc}/images/brick.png +0 -0
  55. /data/{rdocs → doc}/images/brick_link.png +0 -0
  56. /data/{rdocs → doc}/images/bug.png +0 -0
  57. /data/{rdocs → doc}/images/bullet_black.png +0 -0
  58. /data/{rdocs → doc}/images/bullet_toggle_minus.png +0 -0
  59. /data/{rdocs → doc}/images/bullet_toggle_plus.png +0 -0
  60. /data/{rdocs → doc}/images/date.png +0 -0
  61. /data/{rdocs → doc}/images/find.png +0 -0
  62. /data/{rdocs → doc}/images/loadingAnimation.gif +0 -0
  63. /data/{rdocs → doc}/images/macFFBgHack.png +0 -0
  64. /data/{rdocs → doc}/images/package.png +0 -0
  65. /data/{rdocs → doc}/images/page_green.png +0 -0
  66. /data/{rdocs → doc}/images/page_white_text.png +0 -0
  67. /data/{rdocs → doc}/images/page_white_width.png +0 -0
  68. /data/{rdocs → doc}/images/plugin.png +0 -0
  69. /data/{rdocs → doc}/images/ruby.png +0 -0
  70. /data/{rdocs → doc}/images/tag_green.png +0 -0
  71. /data/{rdocs → doc}/images/wrench.png +0 -0
  72. /data/{rdocs → doc}/images/wrench_orange.png +0 -0
  73. /data/{rdocs → doc}/images/zoom.png +0 -0
  74. /data/{rdocs → doc}/js/darkfish.js +0 -0
  75. /data/{rdocs → doc}/js/jquery.js +0 -0
  76. /data/{rdocs → doc}/js/quicksearch.js +0 -0
  77. /data/{rdocs → doc}/js/thickbox-compressed.js +0 -0
  78. /data/{rdocs → doc}/rdoc.css +0 -0
@@ -4,7 +4,7 @@
4
4
 
5
5
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
6
6
  <head>
7
- <meta content="text/html; charset=harset=UTF-8 " http-equiv="Content-Type" />
7
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
8
8
 
9
9
  <title>RDoc Documentation</title>
10
10
 
@@ -47,9 +47,15 @@
47
47
 
48
48
  <li class="class"><a href="RBatch/Config/Exception.html">RBatch::Config::Exception</a></li>
49
49
 
50
+ <li class="class"><a href="RBatch/DoubleRunCheckException.html">RBatch::DoubleRunCheckException</a></li>
51
+
52
+ <li class="module"><a href="RBatch/DoubleRunChecker.html">RBatch::DoubleRunChecker</a></li>
53
+
50
54
  <li class="class"><a href="RBatch/Log.html">RBatch::Log</a></li>
51
55
 
52
- <li class="class"><a href="RBatchException.html">RBatchException</a></li>
56
+ <li class="class"><a href="RBatch/RunConf.html">RBatch::RunConf</a></li>
57
+
58
+ <li class="class"><a href="RBatch/RunConf/Exception.html">RBatch::RunConf::Exception</a></li>
53
59
 
54
60
  </ul>
55
61
 
@@ -58,13 +64,15 @@
58
64
 
59
65
  <li><a href="RBatch/Config.html#method-c-new">::new &mdash; RBatch::Config</a></li>
60
66
 
61
- <li><a href="RBatch/Cmd.html#method-c-new">::new &mdash; RBatch::Cmd</a></li>
67
+ <li><a href="RBatch/Log.html#method-c-new">::new &mdash; RBatch::Log</a></li>
68
+
69
+ <li><a href="RBatch/CmdResult.html#method-c-new">::new &mdash; RBatch::CmdResult</a></li>
62
70
 
63
71
  <li><a href="RBatch/CommonConfig.html#method-c-new">::new &mdash; RBatch::CommonConfig</a></li>
64
72
 
65
- <li><a href="RBatch/CmdResult.html#method-c-new">::new &mdash; RBatch::CmdResult</a></li>
73
+ <li><a href="RBatch/RunConf.html#method-c-new">::new &mdash; RBatch::RunConf</a></li>
66
74
 
67
- <li><a href="RBatch/Log.html#method-c-new">::new &mdash; RBatch::Log</a></li>
75
+ <li><a href="RBatch/Cmd.html#method-c-new">::new &mdash; RBatch::Cmd</a></li>
68
76
 
69
77
  <li><a href="RBatch/Log.html#method-c-verbose">::verbose &mdash; RBatch::Log</a></li>
70
78
 
@@ -72,8 +80,14 @@
72
80
 
73
81
  <li><a href="RBatch/Config.html#method-i-%5B%5D">#[] &mdash; RBatch::Config</a></li>
74
82
 
83
+ <li><a href="RBatch/RunConf.html#method-i-%5B%5D">#[] &mdash; RBatch::RunConf</a></li>
84
+
75
85
  <li><a href="RBatch/CommonConfig.html#method-i-%5B%5D">#[] &mdash; RBatch::CommonConfig</a></li>
76
86
 
87
+ <li><a href="RBatch/RunConf.html#method-i-%5B%5D%3D">#[]= &mdash; RBatch::RunConf</a></li>
88
+
89
+ <li><a href="RBatch/DoubleRunChecker.html#method-i-check">#check &mdash; RBatch::DoubleRunChecker</a></li>
90
+
77
91
  <li><a href="RBatch/Log.html#method-i-close">#close &mdash; RBatch::Log</a></li>
78
92
 
79
93
  <li><a href="RBatch.html#method-i-cmd">#cmd &mdash; RBatch</a></li>
@@ -82,27 +96,37 @@
82
96
 
83
97
  <li><a href="RBatch.html#method-i-common_config">#common_config &mdash; RBatch</a></li>
84
98
 
99
+ <li><a href="RBatch.html#method-i-conf_dir">#conf_dir &mdash; RBatch</a></li>
100
+
85
101
  <li><a href="RBatch.html#method-i-config">#config &mdash; RBatch</a></li>
86
102
 
87
103
  <li><a href="RBatch/Log.html#method-i-debug">#debug &mdash; RBatch::Log</a></li>
88
104
 
89
105
  <li><a href="RBatch/Log.html#method-i-delete_old_log">#delete_old_log &mdash; RBatch::Log</a></li>
90
106
 
91
- <li><a href="RBatch.html#method-i-double_run_check">#double_run_check &mdash; RBatch</a></li>
92
-
93
- <li><a href="RBatch.html#method-i-double_run_lock_file">#double_run_lock_file &mdash; RBatch</a></li>
94
-
95
107
  <li><a href="RBatch/Log.html#method-i-error">#error &mdash; RBatch::Log</a></li>
96
108
 
97
109
  <li><a href="RBatch/Log.html#method-i-fatal">#fatal &mdash; RBatch::Log</a></li>
98
110
 
99
111
  <li><a href="RBatch.html#method-i-home_dir">#home_dir &mdash; RBatch</a></li>
100
112
 
101
- <li><a href="RBatch.html#method-i-home_dir%3D">#home_dir= &mdash; RBatch</a></li>
113
+ <li><a href="RBatch/Log.html#method-i-info">#info &mdash; RBatch::Log</a></li>
102
114
 
103
- <li><a href="RBatch.html#method-i-hostname">#hostname &mdash; RBatch</a></li>
115
+ <li><a href="RBatch.html#method-i-init">#init &mdash; RBatch</a></li>
104
116
 
105
- <li><a href="RBatch/Log.html#method-i-info">#info &mdash; RBatch::Log</a></li>
117
+ <li><a href="RBatch.html#method-i-journal">#journal &mdash; RBatch</a></li>
118
+
119
+ <li><a href="RBatch/RunConf.html#method-i-load">#load &mdash; RBatch::RunConf</a></li>
120
+
121
+ <li><a href="RBatch/DoubleRunChecker.html#method-i-lock_file_name">#lock_file_name &mdash; RBatch::DoubleRunChecker</a></li>
122
+
123
+ <li><a href="RBatch.html#method-i-log_dir">#log_dir &mdash; RBatch</a></li>
124
+
125
+ <li><a href="RBatch/DoubleRunChecker.html#method-i-make_lock_file">#make_lock_file &mdash; RBatch::DoubleRunChecker</a></li>
126
+
127
+ <li><a href="RBatch/RunConf.html#method-i-merge">#merge &mdash; RBatch::RunConf</a></li>
128
+
129
+ <li><a href="RBatch/RunConf.html#method-i-merge%21">#merge! &mdash; RBatch::RunConf</a></li>
106
130
 
107
131
  <li><a href="RBatch/Log.html#method-i-opt">#opt &mdash; RBatch::Log</a></li>
108
132
 
@@ -110,16 +134,20 @@
110
134
 
111
135
  <li><a href="RBatch/Config.html#method-i-path">#path &mdash; RBatch::Config</a></li>
112
136
 
113
- <li><a href="RBatch.html#method-i-program_name">#program_name &mdash; RBatch</a></li>
137
+ <li><a href="RBatch.html#method-i-program_base">#program_base &mdash; RBatch</a></li>
114
138
 
115
- <li><a href="RBatch.html#method-i-program_name%3D">#program_name= &mdash; RBatch</a></li>
139
+ <li><a href="RBatch.html#method-i-program_name">#program_name &mdash; RBatch</a></li>
116
140
 
117
- <li><a href="RBatch.html#method-i-rbatch_config">#rbatch_config &mdash; RBatch</a></li>
141
+ <li><a href="RBatch/RunConf.html#method-i-reload">#reload &mdash; RBatch::RunConf</a></li>
118
142
 
119
- <li><a href="RBatch.html#method-i-rbatch_config_path">#rbatch_config_path &mdash; RBatch</a></li>
143
+ <li><a href="RBatch/RunConf.html#method-i-reset">#reset &mdash; RBatch::RunConf</a></li>
120
144
 
121
145
  <li><a href="RBatch/Cmd.html#method-i-run">#run &mdash; RBatch::Cmd</a></li>
122
146
 
147
+ <li><a href="RBatch.html#method-i-run_conf">#run_conf &mdash; RBatch</a></li>
148
+
149
+ <li><a href="RBatch.html#method-i-run_conf_path">#run_conf_path &mdash; RBatch</a></li>
150
+
123
151
  <li><a href="RBatch/Log.html#method-i-send_mail">#send_mail &mdash; RBatch::Log</a></li>
124
152
 
125
153
  <li><a href="RBatch/CmdResult.html#method-i-status">#status &mdash; RBatch::CmdResult</a></li>
@@ -132,15 +160,13 @@
132
160
 
133
161
  <li><a href="RBatch/CmdResult.html#method-i-stdout_file">#stdout_file &mdash; RBatch::CmdResult</a></li>
134
162
 
135
- <li><a href="RBatch.html#method-i-tmp_dir">#tmp_dir &mdash; RBatch</a></li>
136
-
137
163
  <li><a href="RBatch/CmdResult.html#method-i-to_h">#to_h &mdash; RBatch::CmdResult</a></li>
138
164
 
139
- <li><a href="RBatch/CmdResult.html#method-i-to_s">#to_s &mdash; RBatch::CmdResult</a></li>
165
+ <li><a href="RBatch/Config.html#method-i-to_s">#to_s &mdash; RBatch::Config</a></li>
140
166
 
141
167
  <li><a href="RBatch/CommonConfig.html#method-i-to_s">#to_s &mdash; RBatch::CommonConfig</a></li>
142
168
 
143
- <li><a href="RBatch/Config.html#method-i-to_s">#to_s &mdash; RBatch::Config</a></li>
169
+ <li><a href="RBatch/CmdResult.html#method-i-to_s">#to_s &mdash; RBatch::CmdResult</a></li>
144
170
 
145
171
  <li><a href="RBatch/Log.html#method-i-warn">#warn &mdash; RBatch::Log</a></li>
146
172
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
6
  <head>
7
- <meta content="text/html; charset=harset=UTF-8 " http-equiv="Content-Type" />
7
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
8
8
 
9
9
  <title>File: cmd.rb [RDoc Documentation]</title>
10
10
 
@@ -24,7 +24,7 @@
24
24
  <div id="metadata">
25
25
  <dl>
26
26
  <dt class="modified-date">Last Modified</dt>
27
- <dd class="modified-date">2013-12-01 17:31:01 +0900</dd>
27
+ <dd class="modified-date">2013-12-28 11:15:50 +0900</dd>
28
28
 
29
29
 
30
30
  <dt class="requires">Requires</dt>
@@ -35,6 +35,8 @@
35
35
 
36
36
  <li>tempfile</li>
37
37
 
38
+ <li>tmpdir</li>
39
+
38
40
  </ul>
39
41
  </dd>
40
42
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
6
  <head>
7
- <meta content="text/html; charset=harset=UTF-8 " http-equiv="Content-Type" />
7
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
8
8
 
9
9
  <title>File: common_config.rb [RDoc Documentation]</title>
10
10
 
@@ -24,7 +24,7 @@
24
24
  <div id="metadata">
25
25
  <dl>
26
26
  <dt class="modified-date">Last Modified</dt>
27
- <dd class="modified-date">2013-12-19 01:48:36 +0900</dd>
27
+ <dd class="modified-date">2013-12-28 03:00:00 +0900</dd>
28
28
 
29
29
 
30
30
  <dt class="requires">Requires</dt>
@@ -4,7 +4,7 @@
4
4
 
5
5
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
6
  <head>
7
- <meta content="text/html; charset=harset=UTF-8 " http-equiv="Content-Type" />
7
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
8
8
 
9
9
  <title>File: config.rb [RDoc Documentation]</title>
10
10
 
@@ -24,7 +24,7 @@
24
24
  <div id="metadata">
25
25
  <dl>
26
26
  <dt class="modified-date">Last Modified</dt>
27
- <dd class="modified-date">2013-12-19 01:48:36 +0900</dd>
27
+ <dd class="modified-date">2013-12-28 10:39:24 +0900</dd>
28
28
 
29
29
 
30
30
  <dt class="requires">Requires</dt>
@@ -0,0 +1,56 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+
5
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
+ <head>
7
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
8
+
9
+ <title>File: double_run_checker.rb [RDoc Documentation]</title>
10
+
11
+ <link type="text/css" media="screen" href="../../rdoc.css" rel="stylesheet" />
12
+
13
+ <script src="../../js/jquery.js" type="text/javascript"
14
+ charset="utf-8"></script>
15
+ <script src="../../js/thickbox-compressed.js" type="text/javascript"
16
+ charset="utf-8"></script>
17
+ <script src="../../js/quicksearch.js" type="text/javascript"
18
+ charset="utf-8"></script>
19
+ <script src="../../js/darkfish.js" type="text/javascript"
20
+ charset="utf-8"></script>
21
+ </head>
22
+
23
+ <body class="file file-popup">
24
+ <div id="metadata">
25
+ <dl>
26
+ <dt class="modified-date">Last Modified</dt>
27
+ <dd class="modified-date">2013-12-28 03:15:22 +0900</dd>
28
+
29
+
30
+ <dt class="requires">Requires</dt>
31
+ <dd class="requires">
32
+ <ul>
33
+
34
+ <li>tmpdir</li>
35
+
36
+ <li>tempfile</li>
37
+
38
+ </ul>
39
+ </dd>
40
+
41
+
42
+
43
+ </dl>
44
+ </div>
45
+
46
+ <div id="documentation">
47
+
48
+ <div class="description">
49
+ <h2>Description</h2>
50
+
51
+ </div>
52
+
53
+ </div>
54
+ </body>
55
+ </html>
56
+
@@ -4,7 +4,7 @@
4
4
 
5
5
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
6
  <head>
7
- <meta content="text/html; charset=harset=UTF-8 " http-equiv="Content-Type" />
7
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
8
8
 
9
9
  <title>File: log.rb [RDoc Documentation]</title>
10
10
 
@@ -24,7 +24,7 @@
24
24
  <div id="metadata">
25
25
  <dl>
26
26
  <dt class="modified-date">Last Modified</dt>
27
- <dd class="modified-date">2013-12-19 01:48:36 +0900</dd>
27
+ <dd class="modified-date">2013-12-28 14:15:39 +0900</dd>
28
28
 
29
29
 
30
30
  <dt class="requires">Requires</dt>
@@ -0,0 +1,56 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+
5
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
+ <head>
7
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
8
+
9
+ <title>File: run_conf.rb [RDoc Documentation]</title>
10
+
11
+ <link type="text/css" media="screen" href="../../rdoc.css" rel="stylesheet" />
12
+
13
+ <script src="../../js/jquery.js" type="text/javascript"
14
+ charset="utf-8"></script>
15
+ <script src="../../js/thickbox-compressed.js" type="text/javascript"
16
+ charset="utf-8"></script>
17
+ <script src="../../js/quicksearch.js" type="text/javascript"
18
+ charset="utf-8"></script>
19
+ <script src="../../js/darkfish.js" type="text/javascript"
20
+ charset="utf-8"></script>
21
+ </head>
22
+
23
+ <body class="file file-popup">
24
+ <div id="metadata">
25
+ <dl>
26
+ <dt class="modified-date">Last Modified</dt>
27
+ <dd class="modified-date">2013-12-28 14:13:02 +0900</dd>
28
+
29
+
30
+ <dt class="requires">Requires</dt>
31
+ <dd class="requires">
32
+ <ul>
33
+
34
+ <li>tmpdir</li>
35
+
36
+ <li>yaml</li>
37
+
38
+ </ul>
39
+ </dd>
40
+
41
+
42
+
43
+ </dl>
44
+ </div>
45
+
46
+ <div id="documentation">
47
+
48
+ <div class="description">
49
+ <h2>Description</h2>
50
+
51
+ </div>
52
+
53
+ </div>
54
+ </body>
55
+ </html>
56
+
@@ -4,7 +4,7 @@
4
4
 
5
5
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
6
  <head>
7
- <meta content="text/html; charset=harset=UTF-8 " http-equiv="Content-Type" />
7
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
8
8
 
9
9
  <title>File: version.rb [RDoc Documentation]</title>
10
10
 
@@ -24,7 +24,7 @@
24
24
  <div id="metadata">
25
25
  <dl>
26
26
  <dt class="modified-date">Last Modified</dt>
27
- <dd class="modified-date">2013-12-19 01:48:36 +0900</dd>
27
+ <dd class="modified-date">2013-12-28 02:25:41 +0900</dd>
28
28
 
29
29
 
30
30
  <dt class="requires">Requires</dt>
@@ -4,7 +4,7 @@
4
4
 
5
5
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
6
  <head>
7
- <meta content="text/html; charset=harset=UTF-8 " http-equiv="Content-Type" />
7
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
8
8
 
9
9
  <title>File: rbatch.rb [RDoc Documentation]</title>
10
10
 
@@ -24,14 +24,18 @@
24
24
  <div id="metadata">
25
25
  <dl>
26
26
  <dt class="modified-date">Last Modified</dt>
27
- <dd class="modified-date">2013-12-19 01:48:36 +0900</dd>
27
+ <dd class="modified-date">2013-12-28 14:03:07 +0900</dd>
28
28
 
29
29
 
30
30
  <dt class="requires">Requires</dt>
31
31
  <dd class="requires">
32
32
  <ul>
33
33
 
34
- <li>digest</li>
34
+ <li>yaml</li>
35
+
36
+ <li>rbatch/run_conf</li>
37
+
38
+ <li>rbatch/double_run_checker</li>
35
39
 
36
40
  <li>rbatch/log</li>
37
41
 
data/lib/rbatch/cmd.rb CHANGED
@@ -31,36 +31,27 @@ module RBatch
31
31
  # => "fileA\nfileB\n"
32
32
  #
33
33
  class Cmd
34
- @@def_opt = {
35
- :raise => false,
36
- :timeout => 0
37
- }
38
34
  @cmd_str
39
35
  @opt
40
36
 
41
37
  # Cmd instance
42
38
  #
43
39
  # ==== Params
44
- # +cmd_str+ = Command string. Such ad "ls -l"
45
- # +opt+ = Option hash object. Hash keys is follows.
40
+ # +cmd_str+ = Command string such as "ls -l"
41
+ # +opt+ = Option hash object.
46
42
  # - +:raise+ (Boolean) = If command exit status is not 0, raise exception. Default is false.
47
- # - +:timeout+ (Integer) = If command timeout , raise exception. Default is 0 sec ( 0 means disable) .
43
+ # - +:timeout+ (Integer) = If command timeout , raise exception and kill process. Default is 0 sec ( 0 means disable) .
48
44
  def initialize(cmd_str,opt = nil)
49
45
  raise(CmdException,"Command string is nil") if cmd_str.nil?
50
46
  @cmd_str = cmd_str
51
- # parse option
52
- @opt = @@def_opt.clone
53
- @@def_opt.each_key do |key|
54
- if opt != nil && opt[key] != nil
55
- # use argument
56
- @opt[key] = opt[key]
57
- elsif RBatch.rbatch_config != nil \
58
- && RBatch.rbatch_config["cmd_" + key.to_s] != nil
59
- # use config
60
- @opt[key] = RBatch.rbatch_config["cmd_" + key.to_s]
61
- else
62
- # use default
47
+ tmp = {}
48
+ if opt.nil?
49
+ @opt=RBatch.run_conf.clone
50
+ else
51
+ opt.each_key do |key|
52
+ tmp[("cmd_" + key.to_s).to_sym] = opt[key]
63
53
  end
54
+ @opt=RBatch.run_conf.merge(tmp)
64
55
  end
65
56
  end
66
57
 
@@ -72,19 +63,25 @@ module RBatch
72
63
  stdout_file = Tempfile::new("rbatch_tmpout",Dir.tmpdir)
73
64
  stderr_file = Tempfile::new("rbatch_tmperr",Dir.tmpdir)
74
65
  pid = spawn(@cmd_str,:out => [stdout_file,"w"],:err => [stderr_file,"w"])
75
- if @opt[:timeout] != 0
66
+ status = nil
67
+ if @opt[:cmd_timeout] != 0
76
68
  begin
77
- timeout(@opt[:timeout]) do
69
+ timeout(@opt[:cmd_timeout]) do
78
70
  status = Process.waitpid2(pid)[1] >> 8
79
71
  end
80
72
  rescue Timeout::Error => e
81
- raise(CmdException,"Command timeout. Runtime is over " + @opt[:timeout].to_s + " sec. Command is " + @cmd_str )
73
+ begin
74
+ Process.kill('SIGINT', pid)
75
+ raise(CmdException,"Run time of command \"#{@cmd_str}\" is over #{@opt[:cmd_timeout].to_s} sec. Success to kill process : PID=#{pid}" )
76
+ rescue
77
+ raise(CmdException,"Run time of command \"#{@cmd_str}\" is over #{@opt[:cmd_timeout].to_s} sec. Fail to kill process : PID=#{pid}" )
78
+ end
82
79
  end
83
80
  else
84
81
  status = Process.waitpid2(pid)[1] >> 8
85
82
  end
86
83
  result = RBatch::CmdResult.new(stdout_file,stderr_file,status,@cmd_str)
87
- if @opt[:raise] && status != 0
84
+ if @opt[:cmd_raise] && status != 0
88
85
  raise(CmdException,"Command exit status is not 0. result: " + result.to_s)
89
86
  end
90
87
  return result
@@ -28,9 +28,8 @@ module RBatch
28
28
  @path
29
29
  @config
30
30
  def initialize
31
- file = "common.yaml"
32
- dir = File.join(RBatch::home_dir,"conf")
33
- @path = File.join(dir,file)
31
+ file = RBatch.run_conf[:common_conf_name]
32
+ @path = File.join(RBatch.run_conf[:conf_dir].gsub("<home>",RBatch.home_dir),file)
34
33
  @config = YAML::load_file(@path)
35
34
  end
36
35
  def[](key)
data/lib/rbatch/config.rb CHANGED
@@ -30,8 +30,7 @@ module RBatch
30
30
  @config
31
31
  def initialize
32
32
  file = Pathname(File.basename(RBatch.program_name)).sub_ext(".yaml").to_s
33
- dir = File.join(RBatch::home_dir,"conf")
34
- @path = File.join(dir,file)
33
+ @path = File.join(RBatch.run_conf[:conf_dir].gsub("<home>",RBatch.home_dir),file)
35
34
  @config = YAML::load_file(@path)
36
35
  end
37
36
  def[](key)
@@ -0,0 +1,24 @@
1
+ require 'tmpdir'
2
+ require 'tempfile'
3
+ module RBatch
4
+ module DoubleRunChecker
5
+ module_function
6
+ def lock_file_name(p)
7
+ File.join("rbatch_lock_" + p)
8
+ end
9
+
10
+ def check(p)
11
+ Dir::foreach(Dir.tmpdir) do |f|
12
+ if Regexp.new(lock_file_name(p)) =~ f
13
+ raise RBatch::DoubleRunCheckException, p + " is forbidden running doubly"
14
+ end
15
+ end
16
+ end
17
+
18
+ def make_lock_file(p)
19
+ Tempfile::new(lock_file_name(p),Dir.tmpdir)
20
+ end
21
+ end
22
+
23
+ class DoubleRunCheckException < Exception ; end
24
+ end