Sha256: 1b8075e449d1b003245761f4ae36e46a6235e2308a6d96475e599701070af357

Contents?: true

Size: 1.36 KB

Versions: 3

Compression:

Stored size: 1.36 KB

Contents

desc 'SSH connection with server'
task :ssh do
  on roles(:app) do |host|
    run_locally do
      run_in host, ""
    end
  end
end

desc 'Opens a remote Rails console'
task :c do
  on roles(:app) do |host|
    run_locally do
      run_in host, "cd #{current_path} && RAILS_ENV=#{fetch(:stage)} bundle exec rails c"
    end
  end
end

desc 'Opens a remote Database console'
task :dbconsole do
  on roles(:app) do |host|
    run_locally do
      run_in host, "cd #{current_path} && RAILS_ENV=#{fetch(:stage)} bundle exec rails dbconsole --include-password"
    end
  end
end

desc 'Tails the environment log or the log passed as argument: cap log[thin.3000.log]'
task :log, :file do |task, args|
  on roles(:app) do
    file = args[:file]? args[:file] : "*"
    execute "tail -f #{shared_path}/log/#{file}"
  end
end

desc "Runs a command in server: cap production x['free -m']"
task :x, :command do |task, args|
  on roles(:app) do |host|
    run_locally do
      run_in host, args[:command]
    end
  end
end

desc 'Executes a rake task in server. i.e.: cap staging rake[db:version]'
task :rake, :remote_task do |task, args|
  on roles(:app) do
    within release_path do
      with rails_env: fetch(:stage) do
        execute :rake, "#{args[:remote_task]}"
      end
    end
  end
end


def run_in(host, cmd)
  exec "ssh #{host.user}@#{host.hostname} -p #{host.port || '22'} -tt '#{cmd}'"
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
prun-ops-0.1.8 lib/capistrano/diagnosis.rake
prun-ops-0.1.7 lib/capistrano/diagnosis.rake
prun-ops-0.1.6 lib/capistrano/diagnosis.rake