bin/dblink in dblink-0.2 vs bin/dblink in dblink-0.3

- old
+ new

@@ -108,17 +108,44 @@ if CLI_OPTS[:verbose] puts "Config folder: #{pgb_runner.tmp_folder}" end +pgb_runner_at_exit = Proc.new do + print "Stoping pgbouncer ..." + pgb_runner.stop_async + puts +end + +at_exit do + pgb_runner_at_exit.call +end + print "Starting pgbouncer " pgb_runner.run_async pgb_pid = pgb_runner.wait_for_pid puts "- " + "OK".green + " (pid: #{pgb_pid})" print "Starting SSH tonnel " tonnel = TonnelRunner.new(pgb_runner.pgb_port, tmp_dir: pgb_runner.tmp_folder, verbose: CLI_OPTS[:verbose]) + +tonnel_at_exit = Proc.new do + print "Stoping ssh ..." + tonnel.stop_async + puts + + tonnel.runner_thread.kill + + puts "Removing tmp dir ..." + FileUtils.rm_rf(pgb_runner.tmp_folder) +end + +at_exit do + pgb_runner_at_exit.call + tonnel_at_exit.call +end + tonnel.run_async tonnel.wait_remote_port_allocated puts "- " + "OK".green + " (pid: #{tonnel.runner_pid})" puts "Remote port: #{tonnel.remote_port}" @@ -166,20 +193,13 @@ puts " #{web_response['web_url']}" puts end at_exit do - print "Stoping pgbouncer ..." - pgb_runner.stop_async - puts - print "Stoping ssh ..." - tonnel.stop_async - puts + pgb_runner_at_exit.call + tonnel_at_exit.call tonnel.runner_thread.kill - - puts "Removing tmp dir ..." - FileUtils.rm_rf(pgb_runner.tmp_folder) exit! end tonnel.runner_thread.value