-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.rb
46 lines (35 loc) · 1.15 KB
/
app.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
require 'optparse'
require 'ostruct'
require_relative 'init'
$options = OpenStruct.new
$options.inputs = []
optparser = OptionParser.new do |opts|
opts.banner = "Usage: ruby #{__FILE__} -s /path/to/space-delimited-input -p /path/to/pipe-delimited-input -c /path/to/comma-delimited-input -o /path/to/output"
opts.on('-s', '--space-input=', 'Input file path for space delimited file') do |i|
$options.inputs << { file: i, delimiter: ' ' }
end
opts.on('-c', '--comma-input=', 'Input file path for comma delimited file') do |i|
$options.inputs << { file: i, delimiter: ',' }
end
opts.on('-p', '--pipe-input=', 'Input file path for pipe delimited file') do |i|
$options.inputs << { file: i, delimiter: '|' }
end
opts.on('-o', '--output=', 'Output file path') do |o|
$options.output = o
end
end
optparser.parse!
unless $options.inputs
puts optparser.help
fail("Require at least one input types: -s | -c | -p")
end
unless $options.output
puts optparser.help
fail("Require an output file option: -o")
end
formatter = Priori::Formatter.new(
inputs: $options.inputs,
output: $options.output
)
formatter.format
formatter.print