themejuice/tj

View on GitHub
lib/theme-juice/tasks/apache.rb

Summary

Maintainability
A
0 mins
Test Coverage
# encoding: UTF-8

module ThemeJuice
  module Tasks
    class Apache < Task

      def initialize(opts = {})
        super
      end

      def execute
        create_apache_file
      end

      def unexecute
        remove_apache_file
      end

      private

      def apache_file
        "#{@env.vm_path}/config/apache-config/sites/#{@project.name}.conf"
      end

      def apache_is_setup?
        File.exist? apache_file
      end

      def create_apache_file
        return if apache_is_setup?

        @io.log "Creating apache conf file"
        @util.create_file apache_file, { :verbose => @env.verbose,
          :capture => @env.quiet } do
%Q{<VirtualHost *:80>
  DocumentRoot #{@project.vm_srv}
  ServerName #{@project.url}
  ServerAlias *.#{@project.url} #{@project.xip_url}.*.xip.io *.#{@project.xip_url}.*.xip.io
</VirtualHost>

#{ssl_configuration}
}
        end
      end

      def remove_apache_file
        @io.log "Removing apache conf file"
        @util.remove_file apache_file, { :verbose => @env.verbose,
          :capture => @env.quiet }
      end

      def ssl_configuration
        return if @project.no_ssl
%Q{<VirtualHost *:443>
  DocumentRoot #{@project.vm_srv}
  ServerName #{@project.url}
  SSLEngine on
  SSLCertificateFile "/etc/ssl/certs/#{@project.url}.pem"
  SSLCertificateKeyFile "/etc/ssl/private/#{@project.url}.key"
</VirtualHost>

}
      end
    end
  end
end