Sha256: 05e8105d775514d5b88120f3ae3bf9b51bb0d4752551ef5b7880f40009fafeb4

Contents?: true

Size: 1.35 KB

Versions: 4

Compression:

Stored size: 1.35 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
    exec %Q(ssh #{user}@#{server.host} -p #{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

4 entries across 4 versions & 1 rubygems

Version Path
kapify-0.0.15 lib/kapify/base.rb
kapify-0.0.14 lib/kapify/base.rb
kapify-0.0.13 lib/kapify/base.rb
kapify-0.0.12 lib/kapify/base.rb