#!/usr/bin/env ruby

require 'optparse'
require File.expand_path('../../config/environment',  __FILE__)

# scripting... ensure log to stdout
Rails.logger = ActiveSupport::TaggedLogging.new(Logger.new(STDOUT))

import_options = Hash.new
opts = OptionParser.new do |opts|
    opts.banner = "Usage: #{$0} [options]\n\nAvailable options:\n"
    opts.on '--help', '' do
        STDERR.puts opts.help, "\n"
        exit 0
    end
    opts.on '--master-chroot-dir DIR' do |dir|
        import_options[:master_chroot_dir] = dir
    end
    opts.on '--master-named-conf-file FILE' do |file|
        import_options[:master_named_conf_file] = file
    end
    opts.on '--slave-chroot-dir DIR' do |dir|
        import_options[:slave_chroot_dir] = dir
    end
    opts.on '--slave-named-conf-file FILE' do |file|
        import_options[:slave_named_conf_file] = file
    end
    opts.on '--remote' do
        import_options[:remote] = true
    end
    opts.on '--export' do
        import_options[:export] = true
    end
    opts.on '--log-file FILE' do |file|
        import_options[:logger] = ActiveSupport::BufferedLogger.new(file, ActiveSupport::BufferedLogger::INFO)
    end
    opts.on '--debug' do
        import_options[:debug] = true
    end
    opts.on '--force' do
        import_options[:force] = true
    end
end
opts.parse!

if not import_options[:force]
  print "WARNING!!! This command will overwrite all database content. Are you sure? (y/N): "
  if STDIN.getc != "y"
    puts "Aborting"
    exit 1
  end
end

GloboDns::Importer.new.import(import_options)
