geordi 0.4.0 → 0.4.1

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.
data/README.md CHANGED
@@ -30,11 +30,21 @@ Runs the given command under `bundle exec` if a `Gemfile` is present in your wor
30
30
  More information at http://makandra.com/notes/684-automatically-run-bundle-exec-if-required
31
31
 
32
32
 
33
+ console-for
34
+ -----------
35
+
36
+ Opens a rails console remotely:
37
+
38
+ console-for staging
39
+
40
+ More information at http://makandra.com/notes/1338-console-for-opens-a-rails-console-remotely-on-a-capistrano-deployment-target
41
+
42
+
33
43
 
34
44
  cuc
35
45
  -----
36
46
 
37
- Runs Cucumber with the arguments you want, bundle exec, cucumber_spinner detection, etc.:
47
+ Runs Cucumber with the arguments you want: bundle exec, cucumber_spinner detection, etc.:
38
48
 
39
49
  cuc features/users.feature
40
50
 
@@ -55,7 +65,7 @@ More information at http://makandra.com/notes/951-shell-script-to-clean-up-a-pro
55
65
  dump-for
56
66
  --------
57
67
 
58
- Dumps the database on your server for a given [Capistrano multistage](https://github.com/capistrano/capistrano/wiki/2.x-Multistage-Extension) deployment target, then copies the dump to your project root.
68
+ Dumps the database on your server for a given [Capistrano multistage](https://github.com/capistrano/capistrano/wiki/2.x-Multistage-Extension) deployment target.
59
69
 
60
70
  dump-for production
61
71
 
@@ -126,7 +136,7 @@ More information at http://makandra.com/notes/659-recursively-remove-unnecessary
126
136
  rs
127
137
  -----
128
138
 
129
- Runs RSpec with the arguments you want, RSpec 1/2 detection, bundle exec, rspec_spinner detection, etc.:
139
+ Runs RSpec with the arguments you want: RSpec 1/2 detection, bundle exec, rspec_spinner detection, etc.:
130
140
 
131
141
  rs spec/models/user_spec.rb
132
142
 
@@ -140,13 +150,17 @@ Opens an SSH shell on the given [Capistrano multistage](https://github.com/capis
140
150
 
141
151
  shell-for production
142
152
 
153
+ Now it can also be called with any command to be remotely executed before loading the bash. `--no-bash` skips the bash.
154
+
155
+ shell-for staging --no-bash top
156
+
143
157
  More information at http://makandra.com/notes/1209-script-to-open-an-ssh-shell-to-a-capistrano-deployment-target
144
158
 
145
159
 
146
160
  tests
147
161
  --------------
148
162
 
149
- Runs both `rs` and `cu`. Call from any project directory:
163
+ Runs both `rs` and `cuc`. Call from any project directory:
150
164
 
151
165
  tests
152
166
 
data/bin/console-for CHANGED
@@ -14,10 +14,10 @@ begin
14
14
  stage = ARGV.shift
15
15
  root = find_project_root or raise 'Call me from inside a Rails project!'
16
16
 
17
- if File.exists? "#{root}/script/console"
18
- exec "shell-for #{stage} script/console #{stage}"
17
+ if File.exists? "#{root}/script/console" # => Rails 2
18
+ exec "shell-for #{stage} --no-bash script/console #{stage}"
19
19
  else
20
- exec "shell-for #{stage} bundle exec rails console #{stage}"
20
+ exec "shell-for #{stage} --no-bash bundle exec rails console #{stage}"
21
21
  end
22
22
  rescue Exception => e
23
23
  $stderr.puts e.message
data/bin/shell-for CHANGED
@@ -14,25 +14,26 @@ def find_project_root
14
14
  return nil if current == Dir.pwd
15
15
  current = Dir.pwd
16
16
  end
17
- current
17
+ @project_root = current
18
18
  end
19
19
 
20
20
  begin
21
21
  stage = ARGV.shift
22
+ no_bash = ARGV.shift if ARGV.first == '--no-bash'
22
23
  remote_command = ARGV.join(' ').strip
23
24
 
24
25
  find_project_root or raise 'Call me from inside a Rails project!'
25
26
 
26
27
  data = if stage
27
- deploy_file = Dir['config/deploy/*.rb'].find do |file|
28
+ deploy_file = Dir["#{@project_root}/config/deploy/*.rb"].find do |file|
28
29
  file.match(/\/#{stage}.rb$/)
29
30
  end
30
- deploy_file or raise "Unknown stage: #{stage}"
31
+ deploy_file or raise "Stage does not exist: #{stage}"
31
32
 
32
33
  File.open(deploy_file).readlines
33
34
  else
34
35
  []
35
- end + File.open("config/deploy.rb").readlines
36
+ end + File.open("#{@project_root}/config/deploy.rb").readlines
36
37
 
37
38
  user = unquote data.find{ |line| line =~ /^set :user, /}
38
39
  server = unquote data.find{ |line| line =~ /^server / }
@@ -42,20 +43,20 @@ begin
42
43
 
43
44
  path = deploy_to + "/current"
44
45
  ssh = %(ssh #{user}@#{server})
45
-
46
+
47
+ commands = []
46
48
  if path.match /#\{.*\}/
47
49
  puts %(NOTE: "#{path}" is not a valid path.)
48
50
  puts %(NOTE: Connecting to deploy user home.)
49
- puts
50
51
  sleep 2
51
-
52
- exec ssh
53
52
  else
54
- command = remote_command.empty? ? "bash --login" : remote_command
55
-
56
- exec ssh + %( -t "cd #{path} && #{command}")
53
+ commands << "cd #{path}"
57
54
  end
55
+ commands << remote_command unless remote_command.empty?
56
+ commands << "bash --login" unless no_bash
58
57
 
58
+ exec ssh + %( -t "#{commands.join(' && ')}")
59
+
59
60
  rescue Exception => e
60
61
  $stderr.puts e.message
61
62
  exit 1
@@ -1,3 +1,3 @@
1
1
  module Geordi
2
- VERSION = '0.4.0'
2
+ VERSION = '0.4.1'
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: geordi
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
4
+ hash: 13
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 0
10
- version: 0.4.0
9
+ - 1
10
+ version: 0.4.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Henning Koch