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
47
48
49
50
|
# File 'lib/erdf/cli.rb', line 8
def self.start(*args)
if ARGV.empty?
puts 'Error: Args missing'
puts ' > Help'
puts ' > ----'
puts ' erdf file <filename> <output_file.png>'
puts ' erdf database erde database postgres://postgres:postgres@localhost/rioosdb?search_path=shard_0,public ./schema.png <output_file.png>'
exit
end
command = args.shift.strip
case command
when "version"
puts 'erdf 0.6.1'
exit
when "file"
file = Pathname(args.shift.strip)
input = file.read
text_transformer = Erdf::TextTransformer.new(input)
hash_schema = text_transformer.to_hash
when "database"
url = args.shift.strip
database_transformer = Erdf::DatabaseTransformer.new(url)
hash_schema = database_transformer.to_hash
else
printf('Error: "%s" - command not found', command)
puts ''
puts ' > Help'
puts ' > ----'
puts ' erdf file <filename> <output_file.png>'
puts ' erdf database erde database postgres://postgres:postgres@localhost/rioosdb?search_path=shard_0,public ./schema.png <output_file.png>'
exit
end
hash_transformer = Erdf::HashTransformer.new(hash_schema)
dot_schema = hash_transformer.to_dot
output_file = args.shift.strip
layouted_graph, dot_log = Open3.capture3("dot -Tpng -o #{output_file}", stdin_data: dot_schema)
end
|