#!/usr/bin/env ruby
require 'fileutils'
require 'optparse'

options = {}

optparse = OptionParser.new do |opts|
  opts.on('-nc', '--no_conf', "Skip installation of configuration files") do |f|
    options[:no_conf] = true
  end
end

optparse.parse!

spec = Gem::Specification.find_by_name("nitos_testbed_rc")
gem_root = spec.gem_dir
config_path = "/etc/nitos_testbed_rc"
log_path = "/var/log/ntrc"

puts "Copying configuration files from '#{gem_root}'."

unless File.directory?(config_path)
  puts "Generating directory '#{config_path}'."
  FileUtils.mkdir_p(config_path)
end

unless File.directory?(log_path)
  puts "Generating directory '#{log_path}'."
  FileUtils.mkdir_p(log_path)
end

if options[:no_conf]
  puts "Skipping installation of configuration files."
else
  puts "Installing configuration files."
  conf_files = []
  conf_files << "cm_proxy_conf.yaml"
  conf_files << "frisbee_proxy_conf.yaml"
  conf_files << "user_proxy_conf.yaml"
  conf_files << "omf_script_conf.yaml"

  conf_files.each do |file|
    puts "Copying configuration file '#{gem_root}/etc/#{file}' to '#{config_path}'."
    FileUtils.cp "#{gem_root}/etc/#{file}", "#{config_path}/#{file}"
    FileUtils.chmod 0644, "#{config_path}/#{file}"
  end
  puts "All configuration files have been installed, browse folder '#{config_path}' to alternate them appropriatly."

  config_path = File.expand_path("~/.omf/etc")
  unless File.directory?(config_path)
    puts "Generating directory '#{config_path}'."
    FileUtils.mkdir_p(config_path)
  end

  FileUtils.cp "#{gem_root}/etc/omf_script_conf.yaml", "#{config_path}/omf_script_conf.yaml"
  FileUtils.chmod 0644, "#{config_path}/omf_script_conf.yaml"
end

puts "Copying initialization script 'run_ntrc.sh'."
FileUtils.cp "#{gem_root}/init/run_ntrc.sh", "/usr/local/bin/run_ntrc.sh"

FileUtils.cp "#{gem_root}/init/ntrc.conf", "/etc/init/ntrc.conf"
FileUtils.cp "#{gem_root}/init/ntrc_user.conf", "/etc/init/ntrc_user.conf"
FileUtils.cp "#{gem_root}/init/ntrc_frisbee.conf", "/etc/init/ntrc_frisbee.conf"
FileUtils.cp "#{gem_root}/init/ntrc_cm.conf", "/etc/init/ntrc_cm.conf"
puts "Upstart scripts has been installed."
puts "Execute 'start ntrc' to run all the proxies."
puts "Execute 'start ntrc_frisbee' to run frisbee proxy."
puts "Execute 'start ntrc_user' to run user proxy."
puts "Execute 'start ntrc_cm' to run cm proxy."
puts "done."