tork 17.1.0 → 18.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.
- data/HISTORY.markdown +171 -258
- data/LICENSE +1 -0
- data/README.markdown +91 -63
- data/bin/tork +8 -14
- data/bin/tork-driver +19 -34
- data/bin/tork-engine +73 -0
- data/bin/tork-herald +9 -15
- data/bin/tork-master +17 -25
- data/lib/tork/config.rb +15 -12
- data/lib/tork/config/cucumber.rb +2 -2
- data/lib/tork/config/notify.rb +1 -1
- data/lib/tork/config/rails.rb +4 -10
- data/lib/tork/driver.rb +25 -102
- data/lib/tork/engine.rb +102 -0
- data/lib/tork/master.rb +27 -28
- data/lib/tork/server.rb +7 -5
- data/lib/tork/version.rb +1 -1
- data/man/man1/tork-driver.1 +20 -19
- data/man/man1/tork-engine.1 +66 -0
- data/man/man1/tork-herald.1 +5 -5
- data/man/man1/tork-master.1 +10 -9
- data/man/man1/tork.1 +3 -4
- data/tork.gemspec +9 -9
- metadata +21 -20
data/LICENSE
CHANGED
@@ -12,6 +12,7 @@ Thanks to 2012 Jesse Cooke <jesse@jc00ke.com>
|
|
12
12
|
Thanks to 2012 Benjamin Quorning <benjamin@quorning.net>
|
13
13
|
Thanks to 2012 Nicolas Fouché <nicolas.fouche@gmail.com>
|
14
14
|
Thanks to 2012 Mark Hayes <mark@deployfx.com>
|
15
|
+
Thanks to 2012 Gumaro Melendez <cloudernew@gmail.com>
|
15
16
|
|
16
17
|
Permission to use, copy, modify, and/or distribute this software for any
|
17
18
|
purpose with or without fee is hereby granted, provided that the above
|
data/README.markdown
CHANGED
@@ -5,21 +5,17 @@
|
|
5
5
|
\__/\____/_/ /_/|_\
|
6
6
|
>>>------>
|
7
7
|
|
8
|
-
_Test with fork_
|
9
|
-
==============================================================================
|
8
|
+
# _Test with fork_
|
10
9
|
|
11
|
-
Tork
|
12
|
-
tests changes in your Ruby application or test suite in an efficient manner:
|
10
|
+
Tork runs your tests as they change, in parallel:
|
13
11
|
|
14
|
-
1. Absorbs
|
12
|
+
1. Absorbs test execution overhead into a master process.
|
15
13
|
|
16
|
-
2. Forks to run
|
14
|
+
2. Forks to inherit overhead and run test files in parallel.
|
17
15
|
|
18
16
|
3. Avoids running unchanged tests inside changed test files.
|
19
17
|
|
20
|
-
|
21
|
-
Features
|
22
|
-
------------------------------------------------------------------------------
|
18
|
+
## Features
|
23
19
|
|
24
20
|
* No configuration needed: run `tork` for Ruby, `tork rails` for Rails.
|
25
21
|
|
@@ -39,16 +35,18 @@ Features
|
|
39
35
|
|
40
36
|
* You can override the modular `tork*` programs with your own in $PATH.
|
41
37
|
|
42
|
-
* Its core is written in about
|
38
|
+
* Its core is written in about 410 lines (SLOC) of pure Ruby code! :-)
|
43
39
|
|
44
40
|
### Architecture
|
45
41
|
|
46
|
-
Following UNIX philosophy, Tork is composed of simple text-based programs
|
47
|
-
you
|
42
|
+
Following UNIX philosophy, Tork is composed of simple text-based programs that
|
43
|
+
*do one thing well*. As a result, you could even create your own Tork user
|
44
|
+
interface by wrapping `tork-driver` appropriately!
|
48
45
|
|
49
|
-
* `tork` is an interactive command-line user interface
|
46
|
+
* `tork` is an interactive command-line user interface for `tork-driver`
|
50
47
|
* `tork-herald` monitors current directory tree and reports changed files
|
51
|
-
* `tork-driver`
|
48
|
+
* `tork-driver` drives the engine according to the herald's observations
|
49
|
+
* `tork-engine` tells master to run tests and keeps track of test results
|
52
50
|
* `tork-master` absorbs test execution overhead and forks to run your tests
|
53
51
|
|
54
52
|
When the herald observes that files in or beneath the current directory have
|
@@ -61,9 +59,7 @@ figure out which tests inside your newly saved test file have changed (using
|
|
61
59
|
diff and regexps) and then attempts to run just those. To make it run *all*
|
62
60
|
tests in your saved file, simply save the file *again* without changing it.
|
63
61
|
|
64
|
-
|
65
|
-
Installation
|
66
|
-
------------------------------------------------------------------------------
|
62
|
+
## Installation
|
67
63
|
|
68
64
|
gem install tork
|
69
65
|
|
@@ -91,9 +87,7 @@ Installation
|
|
91
87
|
bundle_bin/tork --help # run it directly
|
92
88
|
bundle exec rake -T # packaging tasks
|
93
89
|
|
94
|
-
|
95
|
-
Usage
|
96
|
-
------------------------------------------------------------------------------
|
90
|
+
## Usage
|
97
91
|
|
98
92
|
### At the command line
|
99
93
|
|
@@ -103,6 +97,14 @@ You can monitor your test processes from another terminal:
|
|
103
97
|
|
104
98
|
watch 'ps xuw | sed -n "1p; /tor[k]/p" | fgrep -v sed'
|
105
99
|
|
100
|
+
### With RSpec
|
101
|
+
|
102
|
+
RSpec 2.8.0 and older contain [a bug](
|
103
|
+
https://github.com/sunaku/tork/issues/31 ) where a nonzero exit status (caused
|
104
|
+
by an uncaught exception) is overridden by RSpec's `Kernel#at_exit` handler to
|
105
|
+
be zero, thereby falsely indicating that a spec had passed. [This patch](
|
106
|
+
https://github.com/rspec/rspec-core/pull/569/files ) fixes the problem.
|
107
|
+
|
106
108
|
### With [Ruby on Rails]
|
107
109
|
|
108
110
|
For Rails 3 or newer, use the `tork/config/rails` configuration helper.
|
@@ -117,17 +119,16 @@ adapter][memory_test_fix]. Otherwise, you *might* face these errors:
|
|
117
119
|
|
118
120
|
> cannot start a transaction within a transaction
|
119
121
|
|
120
|
-
|
121
|
-
Configuration
|
122
|
-
------------------------------------------------------------------------------
|
122
|
+
## Configuration
|
123
123
|
|
124
124
|
Tork looks for a configuration file named `.tork.rb` in its current working
|
125
125
|
directory. The configuration file is a normal Ruby script, inside which you
|
126
|
-
can query and modify the `Tork::Config` object
|
126
|
+
can query and modify the `Tork::Config` object, which is a kind of `Struct`.
|
127
|
+
|
128
|
+
Note that Tork *does not* automatically reload changes in your configuration
|
129
|
+
file. So you must restart Tork accordingly if your configuration changes.
|
127
130
|
|
128
|
-
|
129
|
-
Configuration helpers
|
130
|
-
------------------------------------------------------------------------------
|
131
|
+
## Configuration helpers
|
131
132
|
|
132
133
|
In case you did not read the `tork --help` manual page, please note that you
|
133
134
|
can pass *multiple* configuration helpers to tork(1) at the command line!
|
@@ -192,7 +193,7 @@ Or in your configuration file:
|
|
192
193
|
|
193
194
|
require 'tork/config/logdir'
|
194
195
|
|
195
|
-
### Receive notifications via libnotify, growl, or xmessage
|
196
|
+
### Receive notifications via libnotify, growl, or xmessage
|
196
197
|
|
197
198
|
At the command line:
|
198
199
|
|
@@ -202,9 +203,17 @@ Or in your configuration file:
|
|
202
203
|
|
203
204
|
require 'tork/config/notify'
|
204
205
|
|
205
|
-
|
206
|
-
|
207
|
-
|
206
|
+
## Configuration options
|
207
|
+
|
208
|
+
This table shows which configuration options affect which Tork components:
|
209
|
+
|
210
|
+
| Affects `tork-driver` | Affects `tork-engine` | Affects `tork-master` |
|
211
|
+
| --------------------- | --------------------- | --------------------- |
|
212
|
+
| overhead_load_paths | test_event_hooks | max_forked_workers |
|
213
|
+
| overhead_file_globs | | before_fork_hooks |
|
214
|
+
| reabsorb_file_greps | | after_fork_hooks |
|
215
|
+
| all_test_file_globs | | |
|
216
|
+
| test_file_globbers | | |
|
208
217
|
|
209
218
|
### Tork::Config.max_forked_workers
|
210
219
|
|
@@ -234,29 +243,36 @@ your Ruby application.
|
|
234
243
|
### Tork::Config.test_file_globbers
|
235
244
|
|
236
245
|
Hash that maps (1) a regular expression describing a set of file paths to (2)
|
237
|
-
a lambda function that accepts
|
238
|
-
|
246
|
+
a lambda function that accepts a `MatchData` object containing the results of
|
247
|
+
the regular expression matching against the path of a changed file, and yields
|
239
248
|
one or more file globbing patterns (a single string, or an array of strings)
|
240
249
|
that describe a set of test files that need to be run.
|
241
250
|
|
242
|
-
|
243
|
-
|
251
|
+
The results of these functions are recursively expanded (fed back into them)
|
252
|
+
to construct an entire dependency tree of test files that need to be run. For
|
253
|
+
instance, if one function returns a glob that yields files matched by another
|
254
|
+
function, then that second function will be called to glob more test files.
|
255
|
+
This process repeats until all dependent test files have been accounted for.
|
244
256
|
|
245
|
-
|
246
|
-
|
257
|
+
#### Single glob expansion
|
258
|
+
|
259
|
+
For example, if test files had the same names as their source files followed by an
|
260
|
+
underscore and the file name in reverse like this:
|
247
261
|
|
248
262
|
* `lib/hello.rb` => `test/hello_olleh.rb`
|
249
263
|
* `app/world.rb` => `spec/world_ldrow.rb`
|
250
264
|
|
251
265
|
Then you would add the following to your configuration file:
|
252
266
|
|
253
|
-
Tork::Config.test_file_globbers[%r<^(lib|app)
|
254
|
-
name =
|
267
|
+
Tork::Config.test_file_globbers[%r<^(lib|app)/.*?([^/]+?)\.rb$>] = lambda do |matches|
|
268
|
+
name = matches[2]
|
255
269
|
"{test,spec}/**/#{name}_#{name.reverse}.rb"
|
256
270
|
end
|
257
271
|
|
258
|
-
|
259
|
-
|
272
|
+
#### Multi-glob expansion
|
273
|
+
|
274
|
+
For example, if test files could optionally have "test" or "spec" prefixed or
|
275
|
+
appended to their already peculiar names, like so:
|
260
276
|
|
261
277
|
* `lib/hello.rb` => `test/hello_olleh_test.rb`
|
262
278
|
* `lib/hello.rb` => `test/test_hello_olleh.rb`
|
@@ -265,20 +281,34 @@ Going further, if you suppose that test files could optionally have "test" or
|
|
265
281
|
|
266
282
|
Then you would add the following to your configuration file:
|
267
283
|
|
268
|
-
Tork::Config.test_file_globbers[%r<^(lib|app)
|
269
|
-
name =
|
284
|
+
Tork::Config.test_file_globbers[%r<^(lib|app)/.*?([^/]+?)\.rb$>] = lambda do |matches|
|
285
|
+
name = matches[2]
|
270
286
|
["{test,spec}/**/#{name}_#{name.reverse}.rb",
|
271
287
|
"{test,spec}/**/#{name}_#{name.reverse}_{test,spec}.rb",
|
272
288
|
"{test,spec}/**/{test,spec}_#{name}_#{name.reverse}.rb"]
|
273
289
|
end
|
274
290
|
|
275
|
-
|
276
|
-
particular source file to be tested. For example, to ignore tests for all
|
277
|
-
source files except those within a `models/` directory, you would write:
|
291
|
+
#### Recursive expansion
|
278
292
|
|
279
|
-
|
280
|
-
|
281
|
-
|
293
|
+
For example, if you wanted to run test files associated with `lib/hello.rb`
|
294
|
+
whenever the `app/world.rb` file changed, then you would write:
|
295
|
+
|
296
|
+
Tork::Config.test_file_globbers[%r<^app/world\.rb$>] = lambda do |matches|
|
297
|
+
'lib/hello.rb'
|
298
|
+
end
|
299
|
+
|
300
|
+
This effectively aliases one file onto another, but not in both directions.
|
301
|
+
|
302
|
+
#### Suppressing expansion
|
303
|
+
|
304
|
+
These lambda functions can return `nil` if they do not wish for a particular
|
305
|
+
source file to be tested. For example, to ignore tests for all source files
|
306
|
+
except those within a `models/` directory, you would write:
|
307
|
+
|
308
|
+
Tork::Config.test_file_globbers[%r<^(lib|app)(/.*?)([^/]+?)\.rb$>] = lambda do |matches|
|
309
|
+
if matches[2].include? '/models/'
|
310
|
+
["{test,spec}/**/#{matches[3]}_{test,spec}.rb",
|
311
|
+
"{test,spec}/**/{test,spec}_#{matches[3]}.rb"]
|
282
312
|
#else # implied by the Ruby language
|
283
313
|
#nil # implied by the Ruby language
|
284
314
|
end
|
@@ -289,14 +319,14 @@ source files except those within a `models/` directory, you would write:
|
|
289
319
|
Array of lambda functions that are invoked inside `tork-master` before a
|
290
320
|
worker process is forked to run a test file. These functions are given:
|
291
321
|
|
292
|
-
1. The
|
322
|
+
1. The path of the test file that will be run by the worker process.
|
293
323
|
|
294
|
-
2.
|
324
|
+
2. An array of line numbers in the test file to run. If this array is empty,
|
325
|
+
then the entire test file will be run.
|
295
326
|
|
296
|
-
3. The path of the
|
327
|
+
3. The path of the log file containing the live output of the worker process.
|
297
328
|
|
298
|
-
4.
|
299
|
-
then the entire test file will be run.
|
329
|
+
4. The sequence number of the worker process that will be forked shortly.
|
300
330
|
|
301
331
|
For example, to see some real values:
|
302
332
|
|
@@ -316,14 +346,14 @@ For example, to see some real values:
|
|
316
346
|
Array of lambda functions that are invoked inside a worker process forked
|
317
347
|
by `tork-master`. These functions are given:
|
318
348
|
|
319
|
-
1. The
|
349
|
+
1. The path of the test file that will be run by the worker process.
|
320
350
|
|
321
|
-
2.
|
351
|
+
2. An array of line numbers in the test file to run. If this array is empty,
|
352
|
+
then the entire test file will be run.
|
322
353
|
|
323
|
-
3. The path of the
|
354
|
+
3. The path of the log file containing the live output of the worker process.
|
324
355
|
|
325
|
-
4.
|
326
|
-
then the entire test file will be run.
|
356
|
+
4. The sequence number of the worker process.
|
327
357
|
|
328
358
|
For example, to see some real values, including the worker process' PID:
|
329
359
|
|
@@ -345,7 +375,7 @@ test-driven development cycle by only running tests you are currently editing.
|
|
345
375
|
|
346
376
|
### Tork::Config.test_event_hooks
|
347
377
|
|
348
|
-
Array of lambda functions that are invoked inside `tork-
|
378
|
+
Array of lambda functions that are invoked inside `tork-engine` whenever it
|
349
379
|
receives a status message (passed into those functions) from `tork-master`.
|
350
380
|
Run `tork-master --help` for more information about these status messages.
|
351
381
|
|
@@ -355,9 +385,7 @@ For example, to see some real values:
|
|
355
385
|
p :test_event_hooks => message_from_tork_master
|
356
386
|
}
|
357
387
|
|
358
|
-
|
359
|
-
License
|
360
|
-
------------------------------------------------------------------------------
|
388
|
+
## License
|
361
389
|
|
362
390
|
Released under the ISC license. See the LICENSE file for details.
|
363
391
|
|
data/bin/tork
CHANGED
@@ -1,21 +1,17 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
=begin
|
2
|
+
=begin =======================================================================
|
3
3
|
|
4
|
-
TORK 1 2012-
|
5
|
-
==============================================================================
|
4
|
+
# TORK 1 2012-02-06 18.0.0
|
6
5
|
|
7
|
-
NAME
|
8
|
-
------------------------------------------------------------------------------
|
6
|
+
## NAME
|
9
7
|
|
10
8
|
tork - Continuous testing tool for Ruby
|
11
9
|
|
12
|
-
SYNOPSIS
|
13
|
-
------------------------------------------------------------------------------
|
10
|
+
## SYNOPSIS
|
14
11
|
|
15
12
|
`tork` [*OPTION*]... [*CONFIG*]...
|
16
13
|
|
17
|
-
DESCRIPTION
|
18
|
-
------------------------------------------------------------------------------
|
14
|
+
## DESCRIPTION
|
19
15
|
|
20
16
|
This program is a simple command-line user interface for tork-driver(1). It
|
21
17
|
loads the given *CONFIG* files (which are either paths to actual files or
|
@@ -23,14 +19,12 @@ names of helper libraries in the tork/config/ namespace of Ruby's load path)
|
|
23
19
|
and then waits for you to supply interactive commands on its stdin. You may
|
24
20
|
press the ENTER key (supplying no command) to see a menu of accepted commands.
|
25
21
|
|
26
|
-
OPTIONS
|
27
|
-
------------------------------------------------------------------------------
|
22
|
+
## OPTIONS
|
28
23
|
|
29
24
|
`-h`, `--help`
|
30
|
-
|
25
|
+
Show this help manual.
|
31
26
|
|
32
|
-
SEE ALSO
|
33
|
-
------------------------------------------------------------------------------
|
27
|
+
## SEE ALSO
|
34
28
|
|
35
29
|
tork(1), tork-driver(1), tork-master(1), tork-herald(1)
|
36
30
|
|
data/bin/tork-driver
CHANGED
@@ -1,41 +1,32 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
=begin
|
2
|
+
=begin =======================================================================
|
3
3
|
|
4
|
-
TORK-DRIVER 1 2012-
|
5
|
-
==============================================================================
|
4
|
+
# TORK-DRIVER 1 2012-02-06 18.0.0
|
6
5
|
|
7
|
-
NAME
|
8
|
-
------------------------------------------------------------------------------
|
6
|
+
## NAME
|
9
7
|
|
10
|
-
tork-driver - drives tork-
|
8
|
+
tork-driver - drives tork-engine(1) when files change
|
11
9
|
|
12
|
-
SYNOPSIS
|
13
|
-
------------------------------------------------------------------------------
|
10
|
+
## SYNOPSIS
|
14
11
|
|
15
12
|
`tork-driver` [*OPTION*]...
|
16
13
|
|
17
|
-
DESCRIPTION
|
18
|
-
------------------------------------------------------------------------------
|
14
|
+
## DESCRIPTION
|
19
15
|
|
20
|
-
This program
|
21
|
-
|
22
|
-
|
16
|
+
This program drives tork-engine(1) according to tork-herald(1)'s observations.
|
17
|
+
It reads the following single-line commands (JSON arrays) from its standard
|
18
|
+
input stream and performs the respective actions as described below. It also
|
19
|
+
funnels the standard output stream of tork-engine(1) into its own.
|
23
20
|
|
24
21
|
`["run_all_test_files"]`
|
25
22
|
Runs all test files found within and beneath the current working directory.
|
26
23
|
|
27
|
-
`["stop_running_test_files"]`
|
28
|
-
Stops any test files that are currently running.
|
29
|
-
|
30
|
-
`["rerun_passed_test_files"]`
|
31
|
-
Runs all test files that have passed during their most recent run.
|
32
|
-
|
33
24
|
`["reabsorb_overhead_files"]`
|
34
25
|
Stops any test files that are currently running, reabsorbs the test
|
35
26
|
execution overhead, and resumes running those interrupted test files.
|
36
27
|
|
37
|
-
|
38
|
-
|
28
|
+
*...*
|
29
|
+
This program accepts tork-engine(1) commands and delegates them accordingly.
|
39
30
|
|
40
31
|
When tork-herald(1) reports that a file belonging to the test execution
|
41
32
|
overhead has been modified, this program replaces tork-master(1) with a new
|
@@ -48,30 +39,26 @@ its standard output stream to provide notifications about its activity:
|
|
48
39
|
The test execution overhead is currently being reabsorbed, by replacing
|
49
40
|
tork-master(1) with a new instance, because *overhead_file* has changed.
|
50
41
|
|
51
|
-
OPTIONS
|
52
|
-
------------------------------------------------------------------------------
|
42
|
+
## OPTIONS
|
53
43
|
|
54
44
|
`-h`, `--help`
|
55
|
-
|
45
|
+
Show this help manual.
|
56
46
|
|
57
|
-
FILES
|
58
|
-
------------------------------------------------------------------------------
|
47
|
+
## FILES
|
59
48
|
|
60
49
|
*.tork.rb*
|
61
50
|
Optional Ruby script for configuring tork(1).
|
62
51
|
|
63
|
-
ENVIRONMENT
|
64
|
-
------------------------------------------------------------------------------
|
52
|
+
## ENVIRONMENT
|
65
53
|
|
66
54
|
`TORK_CONFIGS`
|
67
55
|
A single-line JSON array containing paths to actual files or names of
|
68
56
|
helper libraries in the tork/config/ namespace of Ruby's load path.
|
69
57
|
These configuration files are loaded just before *.tork.rb* is loaded.
|
70
58
|
|
71
|
-
SEE ALSO
|
72
|
-
------------------------------------------------------------------------------
|
59
|
+
## SEE ALSO
|
73
60
|
|
74
|
-
tork(1), tork-driver(1), tork-
|
61
|
+
tork(1), tork-herald(1), tork-driver(1), tork-engine(1), tork-master(1)
|
75
62
|
|
76
63
|
=end =========================================================================
|
77
64
|
|
@@ -81,6 +68,4 @@ require 'binman'
|
|
81
68
|
BinMan.help
|
82
69
|
|
83
70
|
require 'tork/driver'
|
84
|
-
Tork::Driver.loop
|
85
|
-
|
86
|
-
Process.waitall
|
71
|
+
Tork::Driver.new.loop
|
data/bin/tork-engine
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
=begin =======================================================================
|
3
|
+
|
4
|
+
# TORK-ENGINE 1 2012-02-06 18.0.0
|
5
|
+
|
6
|
+
## NAME
|
7
|
+
|
8
|
+
tork-engine - wraps tork-master(1) with bookkeeping
|
9
|
+
|
10
|
+
## SYNOPSIS
|
11
|
+
|
12
|
+
`tork-engine` [*OPTION*]...
|
13
|
+
|
14
|
+
## DESCRIPTION
|
15
|
+
|
16
|
+
This program tells tork-master(1) to run your tests and keeps track of test
|
17
|
+
results. It reads the following single-line commands (JSON arrays) from its
|
18
|
+
standard input stream and performs the respective actions as described below.
|
19
|
+
It also funnels the standard output stream of tork-master(1) into its own.
|
20
|
+
|
21
|
+
`["reabsorb_overhead",` *paths*`,` *files*`]`
|
22
|
+
Stops any test files that are currently running, reabsorbs the given test
|
23
|
+
execution overhead, and resumes running those interrupted test files. See
|
24
|
+
the "load" command in tork-master(1) for more information.
|
25
|
+
|
26
|
+
`["run_test_file"`, *test_file*`,` *line_numbers*`]`
|
27
|
+
Runs tests that correspond to the given *line_numbers* array in the given
|
28
|
+
*test_file*. If *line_numbers* is `null`, then only those lines that have
|
29
|
+
changed since the last time the *test_file* was run will be substituted. If
|
30
|
+
*line_numbers* is an empty array, then the entire *test_file* will be run.
|
31
|
+
|
32
|
+
`["stop_running_test_files"]`
|
33
|
+
Stops any test files that are currently running.
|
34
|
+
|
35
|
+
`["rerun_passed_test_files"]`
|
36
|
+
Runs all test files that have passed during their most recent run.
|
37
|
+
|
38
|
+
`["rerun_failed_test_files"]`
|
39
|
+
Runs all test files that have failed during their most recent run.
|
40
|
+
|
41
|
+
`["quit"]`
|
42
|
+
Stops all tests that are currently running and exits.
|
43
|
+
|
44
|
+
## OPTIONS
|
45
|
+
|
46
|
+
`-h`, `--help`
|
47
|
+
Show this help manual.
|
48
|
+
|
49
|
+
## FILES
|
50
|
+
|
51
|
+
*.tork.rb*
|
52
|
+
Optional Ruby script for configuring tork(1).
|
53
|
+
|
54
|
+
## ENVIRONMENT
|
55
|
+
|
56
|
+
`TORK_CONFIGS`
|
57
|
+
A single-line JSON array containing paths to actual files or names of
|
58
|
+
helper libraries in the tork/config/ namespace of Ruby's load path.
|
59
|
+
These configuration files are loaded just before *.tork.rb* is loaded.
|
60
|
+
|
61
|
+
## SEE ALSO
|
62
|
+
|
63
|
+
tork(1), tork-herald(1), tork-driver(1), tork-engine(1), tork-master(1)
|
64
|
+
|
65
|
+
=end =========================================================================
|
66
|
+
|
67
|
+
$0 = File.basename(__FILE__) # for easier identification in ps(1) output
|
68
|
+
|
69
|
+
require 'binman'
|
70
|
+
BinMan.help
|
71
|
+
|
72
|
+
require 'tork/engine'
|
73
|
+
Tork::Engine.new.loop
|