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
51
52
53
54
55
56
57
|
# File 'lib/active_record_mysql_repl/cli/main.rb', line 12
def self.run(args)
if args.empty?
puts "ActiveRecordMysqlRepl Version: #{VERSION}"
return
end
if args[0] == "--zsh-completion"
puts ZshCompletion.generate
return
end
opts = CLI::Options.parse(args)
army_config = Config.load(opts[:c] || File.join(Dir.home, ".army.yml"))
db_configs = Database::Configs.load(army_config.database_config)
db_config_key = opts[:d]
db_config = db_configs[db_config_key]
return puts db_configs.keys unless db_config
generate_erf = opts[:e] == "erd"
SSHTunnel.tunnel(db_config) do |port|
Database::Connection.connect(db_config, port) do
Database::Loader.load_tables(db_config_key, army_config, port)
if generate_erf
require "rails_erd/diagram/graphviz"
puts "Generating ERD for #{db_config_key}_erd.pdf".gray
RailsERD::Diagram::Graphviz.create
FileUtils.mv("erd.pdf", "#{db_config_key}_erd.pdf")
next
end
require "active_record_mysql_repl/extensions"
if army_config.extensions_dir.present?
puts "Loading custom extensions from #{army_config.extensions_dir}".gray
Extensions.load_external(army_config.extensions_dir)
end
clear_screen
Pry.config.prompt_name = db_config_key.black.send(:"on_#{db_config.prompt_color}")
Pry.config.rc_file = army_config.pryrc if army_config.pryrc.present?
Pry.start
end
end
end
|