Sha256: aa7e76bf15d21bfb61c593ed8669152a6d28a76af4ddf41ff8ae58c9ce0bb344

Contents?: true

Size: 1.54 KB

Versions: 11

Compression:

Stored size: 1.54 KB

Contents

module OpsPreflight
  class Client < Thor
    include Thor::Actions
    include ExitCode

    namespace :default

    source_root OpsPreflight.root_path

    class_option :verbose, :aliases => '-v', :type => :boolean
    class_option :simulate, :aliases => '-S', :type => :boolean
    class_option :trace, :aliases => '-t', :type => :boolean

    desc "init", "Initialize application to work with preflight"
    def init
      copy_file 'data/preflight.yml', 'config/preflight.yml'
      say 'Please edit config/preflight.yml to finish setting up preflight.'
    end

    desc "setup <rails_env>", "Set up the server's preflight environment"
    def setup(rails_env)
      run "bundle exec mina setup RAILS_ENV=#{rails_env} #{Config.new.client_args(rails_env)} #{mina_args}", :verbose => false
    end

    desc "deploy <rails_env>", "Deploys to the configured app"
    def deploy(rails_env)
      run "bundle exec mina deploy RAILS_ENV=#{rails_env} #{Config.new.client_args(rails_env)} #{mina_args}", :verbose => false
    end

    # Fixes thor's banners when used with :default namespace
    def self.banner(command, namespace = nil, subcommand = false)
      "#{basename} #{command.formatted_usage(self, false, subcommand)}"
    end

    no_tasks do
      def mina_args(*args)
        args = "-f #{OpsPreflight.root_path('data', 'deploy.rb')}"

        # mina's --verbose doesn't work
        args << ' -v' if options[:verbose]

        [:simulate, :trace].each do |opt|
          args << " --#{opt.to_s}" if options[opt]
        end

        args
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
ops_preflight-1.2.1 lib/ops_preflight/client.rb
ops_preflight-1.2.0 lib/ops_preflight/client.rb
ops_preflight-1.1.2 lib/ops_preflight/client.rb
ops_preflight-1.1.1 lib/ops_preflight/client.rb
ops_preflight-1.1.0 lib/ops_preflight/client.rb
ops_preflight-1.0.0.pre2 lib/ops_preflight/client.rb
ops_preflight-1.0.0.pre1 lib/ops_preflight/client.rb
ops_preflight-0.9.0 lib/ops_preflight/client.rb
ops_preflight-0.9.0.pre2 lib/ops_preflight/client.rb
ops_preflight-0.9.0.pre1 lib/ops_preflight/client.rb
ops_preflight-0.0.1.pre lib/ops_preflight/client.rb