Sha256: 5f5ab66e9617553c18ad2a005f128e17559c926f84ec287fee95d175d8b6b626

Contents?: true

Size: 1.16 KB

Versions: 1

Compression:

Stored size: 1.16 KB

Contents

require 'awestruct/deploy/s3_deploy'
require 'awestruct/deploy/rsync_deploy'
require 'awestruct/deploy/github_pages_deploy'

module Awestruct
  module CLI

    class Deploy

      attr_accessor :site_config
      attr_accessor :deploy_config

      def initialize(site_config, deploy_config)
        @site_config   = site_config
        @deploy_config = deploy_config
        @deploy_config['type'] ||= (is_github? ? :github_pages : :rsync)
        puts "Deploying to #{deploy_type}"
      end

      def deploy_type
        deploy_config['type']
      end
  
      def run()
        deployer_class = Awestruct::Deployers.instance[ deploy_type.to_sym ]
  
        if ( deployer_class.nil? )
          $stderr.puts "Unable to locate correct deployer for #{deploy_type}"
          $stderr.puts "Deployers available for #{::Awestruct::Deployers.instance.collect {|k,v| "#{v} (#{k})"}.join(', ')}"
          return
        end
  
        deployer = deployer_class.new( site_config, deploy_config )
        deployer.run
      end

      private
      def is_github?
        deploy_config['host'].to_s == 'github_pages' || deploy_config['host'].to_s == 'github_pages'
      end
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
awestruct-0.4.6 lib/awestruct/cli/deploy.rb