#!/usr/bin/env ruby

require 'fileutils'

TEMPLATE     = File.join(File.dirname(__FILE__), 'templates/nginx.conf.erb')
USER_CONFIG  = 'static.json'
NGINX_CONFIG = 'config/nginx.conf'

require 'erb'
require 'json'


class NginxConfig
  json = {}
  json = JSON.parse(File.read(USER_CONFIG)) if File.exist?(USER_CONFIG)
  json["port"] ||= ENV["PORT"] || 5000
  json["root"] ||= "public_html/"
  json["proxies"] ||= {}
  json["clean_urls"] ||= false
  json.each do |key, value|
    define_method(key) { value }
  end
end

erb   = ERB.new(File.read(TEMPLATE))
klass = erb.def_class(NginxConfig, 'render()')
FileUtils.mkdir_p(File.dirname(NGINX_CONFIG))
File.write(NGINX_CONFIG, klass.new.render)
