rbatch 1.13.1 → 2.0.0

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 (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