capistrano-remote 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 69c743c8ffb4138b3de1c8297293bd31628e3a1b
4
- data.tar.gz: a2317e84a03ca8984627a2a3df700128fc81b5bc
3
+ metadata.gz: da76f0d7bf5b90ddda1a32a193d061bf316c2b8d
4
+ data.tar.gz: 6afd603dc39969d71f1823da7f1758fb699233a9
5
5
  SHA512:
6
- metadata.gz: b8cde54646d5be139e95afb2ebb0af03a374610037a6aa069ca25f8bd272ee79c6200457a5f34c49849e4ed30c7da72dadf752e273bde025f1e5d93300f2d743
7
- data.tar.gz: da727ab1448924dc784a5569b34a98b93940c75199a39df515affc1bd3846d9cf9e648c8033b1678335e8ce15fecb153b53546252192f0f72cfdafa2528a0deb
6
+ metadata.gz: 3a2e432292228d2e47ee02a27fd0d1695eb90559e77a8bb8c449eef935999d1d2380daf512ed46c065b2aa5c98980abd0dfa46023938c54994560a1b7a2681d2
7
+ data.tar.gz: a0b909fe24f1aa23defb367e32151cc1208c0b2add6e869c4855489af39a0997ebb834e705c08ba628025b753dceb3f6872a4adad3ce18a73884c047c5154f54
@@ -0,0 +1,18 @@
1
+ # Change Log
2
+
3
+ All notable changes to this project will be documented in this file.
4
+ This project adheres to [Semantic Versioning](http://semver.org/).
5
+
6
+ ## [0.2.0] - 2016-02-15
7
+
8
+ ### Added
9
+
10
+ - A changelog (this one)
11
+ - Support for running rake tasks remotely: `cap remote:rake task=about`
12
+
13
+ ## [0.1.0]
14
+
15
+ ### Added
16
+
17
+ - Support for running rails console remotely
18
+ - Support for running rails dbconsole remotely
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source "https://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in capistrano-remote.gemspec
4
4
  gemspec
data/README.md CHANGED
@@ -57,7 +57,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
57
57
 
58
58
  ## Contributing
59
59
 
60
- Bug reports and pull requests are welcome on GitHub at https://github.com/substancelab/capistrano-remote. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
60
+ Bug reports and pull requests are welcome on GitHub at https://github.com/substancelab/capistrano-remote. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
61
61
 
62
62
 
63
63
  ## License
data/Rakefile CHANGED
@@ -1 +1 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler/gem_tasks'
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "bundler/setup"
4
- require "capistrano/remote"
3
+ require 'bundler/setup'
4
+ require 'capistrano/remote'
5
5
 
6
6
  # You can add fixtures and/or initialization code here to make experimenting
7
7
  # with your gem easier. You can also use a different console, if you like.
@@ -10,5 +10,5 @@ require "capistrano/remote"
10
10
  # require "pry"
11
11
  # Pry.start
12
12
 
13
- require "irb"
13
+ require 'irb'
14
14
  IRB.start
@@ -1,16 +1,16 @@
1
1
  # coding: utf-8
2
- lib = File.expand_path("../lib", __FILE__)
2
+ lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "capistrano/remote/version"
4
+ require 'capistrano/remote/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "capistrano-remote"
7
+ spec.name = 'capistrano-remote'
8
8
  spec.version = Capistrano::Remote::VERSION
9
- spec.authors = ["Jakob Skjerning"]
10
- spec.email = ["jakob@mentalized.net"]
9
+ spec.authors = ['Jakob Skjerning']
10
+ spec.email = ['jakob@mentalized.net']
11
11
 
12
12
  spec.summary = \
13
- "Capistrano tasks to start a Rails console or dbconsole on your servers"
13
+ 'Capistrano tasks to start a Rails console or dbconsole on your servers'
14
14
  spec.description = <<-EOF
15
15
  Every so often you need to look at your production data or otherwise run
16
16
  some manual maintenance tasks in your production Rails application.
@@ -19,18 +19,18 @@ Gem::Specification.new do |spec|
19
19
  dbconsole on your servers without manually SSH'ing.
20
20
  EOF
21
21
 
22
- spec.homepage = "https://github.com/substancelab/capistrano-remote"
23
- spec.license = "MIT"
22
+ spec.homepage = 'https://github.com/substancelab/capistrano-remote'
23
+ spec.license = 'MIT'
24
24
 
25
25
  spec.files = `git ls-files -z`.split("\x0").reject { |f|
26
26
  f.match(%r{^(test|spec|features)/})
27
27
  }
28
- spec.bindir = "exe"
28
+ spec.bindir = 'exe'
29
29
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
30
- spec.require_paths = ["lib"]
30
+ spec.require_paths = ['lib']
31
31
 
32
- spec.add_dependency "capistrano", "~> 3.0"
32
+ spec.add_dependency 'capistrano', '~> 3.0'
33
33
 
34
- spec.add_development_dependency "bundler", "~> 1.10"
35
- spec.add_development_dependency "rake", "~> 10.0"
34
+ spec.add_development_dependency 'bundler', '~> 1.10'
35
+ spec.add_development_dependency 'rake', '~> 10.0'
36
36
  end
@@ -1,5 +1,5 @@
1
- require "capistrano/remote/runner"
2
- require "capistrano/remote/version"
1
+ require 'capistrano/remote/runner'
2
+ require 'capistrano/remote/version'
3
3
 
4
4
  # Load the actual tasks
5
- load File.expand_path("../tasks/remote.rake", __FILE__)
5
+ load File.expand_path('../tasks/remote.rake', __FILE__)
@@ -1,5 +1,6 @@
1
1
  module Capistrano
2
- module Remote
2
+ module Remote # :nodoc:
3
+ # The primary interface for actually running tasks on a remote host.
3
4
  class Runner
4
5
  attr_reader :host
5
6
 
@@ -7,10 +8,12 @@ module Capistrano
7
8
  @host = host
8
9
  end
9
10
 
10
- def run_interactively(command)
11
- remote_command = "cd #{current_path} && #{rails_command(command)}"
12
- local_command = "ssh -l #{user} #{hostname} -t \"#{remote_command}\""
13
- exec local_command
11
+ def rake(task)
12
+ run_interactively(in_current_path(rake_command(task)))
13
+ end
14
+
15
+ def rails(command)
16
+ run_interactively(in_current_path(rails_command(command)))
14
17
  end
15
18
 
16
19
  private
@@ -23,10 +26,24 @@ module Capistrano
23
26
  host.hostname
24
27
  end
25
28
 
29
+ def in_current_path(command)
30
+ "cd #{current_path} && #{command}"
31
+ end
32
+
26
33
  def rails_command(command)
27
34
  "#{bundle_command} exec rails #{command}"
28
35
  end
29
36
 
37
+ def rake_command(arguments)
38
+ command = fetch(:rake_command, SSHKit.config.command_map[:rake])
39
+ "#{command} #{arguments}"
40
+ end
41
+
42
+ def run_interactively(remote_command)
43
+ local_command = "ssh -l #{user} #{hostname} -t \"#{remote_command}\""
44
+ exec local_command
45
+ end
46
+
30
47
  def user
31
48
  fetch(:user, host.user)
32
49
  end
@@ -1,5 +1,5 @@
1
1
  module Capistrano
2
- module Remote
3
- VERSION = "0.1.0"
2
+ module Remote # :nodoc:
3
+ VERSION = '0.2.0'
4
4
  end
5
5
  end
@@ -1,21 +1,32 @@
1
1
  namespace :remote do
2
- desc "Run and attach to a remote Rails console"
2
+ desc 'Run and attach to a remote Rails console'
3
3
  task :console do
4
4
  rails_env = fetch(:rails_env)
5
5
  on roles(:db) do |host|
6
- Capistrano::Remote::Runner.new(host).run_interactively(
6
+ Capistrano::Remote::Runner.new(host).rails(
7
7
  "console #{rails_env}"
8
8
  )
9
9
  end
10
10
  end
11
11
 
12
- desc "Run and attach to a remote Rails database console"
12
+ desc 'Run and attach to a remote Rails database console'
13
13
  task :dbconsole do
14
14
  rails_env = fetch(:rails_env)
15
15
  on roles(:db) do |host|
16
- Capistrano::Remote::Runner.new(host).run_interactively(
16
+ Capistrano::Remote::Runner.new(host).rails(
17
17
  "dbconsole #{rails_env} -p"
18
18
  )
19
19
  end
20
20
  end
21
+
22
+ desc 'Run a remote rake task.
23
+ Specify the task to run using the `task` environment variable.'
24
+ task :rake do
25
+ rails_env = fetch(:rails_env)
26
+ on roles(:db) do |host|
27
+ Capistrano::Remote::Runner.new(host).rake(
28
+ "RAILS_ENV=#{rails_env} #{ENV['task']}"
29
+ )
30
+ end
31
+ end
21
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-remote
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jakob Skjerning
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-11-19 00:00:00.000000000 Z
11
+ date: 2016-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capistrano
@@ -65,6 +65,7 @@ extensions: []
65
65
  extra_rdoc_files: []
66
66
  files:
67
67
  - ".gitignore"
68
+ - CHANGELOG.md
68
69
  - CODE_OF_CONDUCT.md
69
70
  - Gemfile
70
71
  - LICENSE.txt
@@ -97,8 +98,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
97
98
  version: '0'
98
99
  requirements: []
99
100
  rubyforge_project:
100
- rubygems_version: 2.4.6
101
+ rubygems_version: 2.4.8
101
102
  signing_key:
102
103
  specification_version: 4
103
104
  summary: Capistrano tasks to start a Rails console or dbconsole on your servers
104
105
  test_files: []
106
+ has_rdoc: