module NginxHelper

Public Instance Methods

generate_nginx_config(do_rebuild) click to toggle source
# File lib/odania_static_pages/helper/nginx.rb, line 2
def generate_nginx_config(do_rebuild)
        nginx_default_redirect = @generator_config.nginx_default_redirect
        if 'live'.eql?(@config.environment)
                default_vhost_file = 'default-live-vhost.conf.erb'
                domain_extension = ''
        else
                default_vhost_file = 'default-vhost.conf'
                domain_extension = '.lvh.me'

                puts 'Generating index.html'
                FileUtils.mkdir_p @config.output_site_path
                renderer = ERB.new(File.read(File.join(@config.base_dir, 'templates', 'nginx', 'index.html.erb')))
                File.write File.join(@config.output_site_path, 'index.html'), renderer.result(binding)
        end

        vhost_renderer = ERB.new(File.read(File.join(@config.base_dir, 'templates', 'nginx', 'vhost.conf.erb')))
        sites = {}
        grouped_domains.each_pair do |site_name, page_config|
                full_site_name = "#{site_name}#{domain_extension}"
                puts "Writing vhost for: #{full_site_name}"

                if @deploy_config.respond_to? :expires
                        expires = @deploy_config.expires
                else
                        expires = 'live'.eql?(@config.environment) ? 'modified +24h' : '-1'
                end

                FileUtils.mkdir_p @nginx_conf_dir
                File.write File.join(@nginx_conf_dir, "#{site_name}.conf"), vhost_renderer.result(binding)

                sites[site_name] = "#{site_name}#{domain_extension}:8080"

                page_config.each do |config|
                        sites["#{site_name}#{config[:baseurl]}"] = "#{site_name}#{domain_extension}:8080#{config[:baseurl]}"
                end if page_config.count > 1
        end

        puts 'Copy default vhost'
        renderer = ERB.new(File.read(File.join(@config.base_dir, 'templates', 'nginx', default_vhost_file)))
        File.write File.join(@nginx_conf_dir, 'default.conf'), renderer.result(binding)

        puts 'Copy nginx.conf'
        FileUtils.cp File.join(@config.base_dir, 'templates', 'nginx', 'nginx.conf'), File.join(@nginx_dir, 'nginx.conf')
end
grouped_domains() click to toggle source
# File lib/odania_static_pages/helper/nginx.rb, line 47
def grouped_domains
        result = Hash.new { |k, v| k[v] = [] }

        @generator_config.jekyll_config['pages'].each do |page|
                uri = URI.parse(page['url'])
                host = uri.host
                result[host] << {baseurl: page['baseurl'], relative_path: @generator_config.page_path(page)}
        end

        puts result.inspect
        result
end