Sha256: a3642cc5787db316b8057dbe368e1f3ab8b9ada4c84fedb69f465554f880424b

Contents?: true

Size: 1.39 KB

Versions: 5

Compression:

Stored size: 1.39 KB

Contents

Capistrano::Configuration.instance.load do
  def set_default(name, *args, &block)
    set(name, *args, &block) unless exists?(name)
  end

  def close_sessions
    sessions.values.each { |session| session.close }
    sessions.clear
  end

  def as_user(user_name)
    old_user = user
    set :user, user_name
    close_sessions
    begin
      yield
    ensure
      set :user, old_user
      close_sessions
    end
  end

  def run_interactively(command, server=nil)
    server ||= find_servers_for_task(current_task).first
    ssh_port = server.port || port
    exec %Q(ssh #{user}@#{server.host} -p #{ssh_port} -t '#{command}')
  end

  set_default(:templates_path, "#{Dir.pwd}/config/deploy/templates")

  def template(from, to)
    erb = File.read(File.expand_path("#{templates_path}/#{from}"))
    put ERB.new(erb).result(binding), to
  end

  def kapify_template(generator, template_name, target)
    config_file = "#{templates_path}/#{template_name}"
    # if no customized file, proceed with default
    unless File.exists?(config_file)
      config_file = File.join(File.dirname(__FILE__), "../generators/kapify/#{generator}/templates/#{template_name}")
    end
    put ERB.new(File.read(config_file)).result(binding), target
  end

  def ask_with_default(prompt, default_value)
    Capistrano::CLI.ui.ask(prompt) do |q|
      q.default = default_value
      q.answer_type = ->(res) { res.to_s }
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
kapify-0.1.3 lib/kapify/base.rb
kapify-0.1.2 lib/kapify/base.rb
kapify-0.1.1 lib/kapify/base.rb
kapify-0.1.0 lib/kapify/base.rb
kapify-0.0.16 lib/kapify/base.rb