geordi 0.18.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +13 -5
- data/.ruby-version +1 -0
- data/README.md +199 -110
- data/Rakefile +40 -0
- data/bin/apache-site +1 -19
- data/bin/cap-all +1 -27
- data/bin/cleanup-directory +1 -11
- data/bin/console-for +1 -12
- data/bin/cuc +1 -2
- data/bin/cuc-show +1 -2
- data/bin/cuc-vnc-setup +1 -114
- data/bin/deploy-to-production +1 -91
- data/bin/dump-for +4 -32
- data/bin/dumple +2 -4
- data/bin/geordi +10 -0
- data/bin/gitpt +1 -2
- data/bin/launchy_browser +9 -3
- data/bin/load-dump +1 -4
- data/bin/migrate-all +1 -13
- data/bin/optimize-png +1 -118
- data/bin/power-rake +1 -7
- data/bin/remove-executable-flags +1 -6
- data/bin/rs +1 -26
- data/bin/run_tests +1 -2
- data/bin/setup-firefox-for-selenium +1 -3
- data/bin/shell-for +1 -8
- data/bin/tests +1 -5
- data/geordi.gemspec +19 -0
- data/lib/geordi/COMMAND_TEMPLATE +29 -0
- data/lib/geordi/capistrano.rb +9 -7
- data/lib/geordi/capistrano_config.rb +66 -0
- data/lib/geordi/cli.rb +28 -0
- data/lib/geordi/commands/all_targets.rb +26 -0
- data/lib/geordi/commands/apache_site.rb +22 -0
- data/lib/geordi/commands/bundle_install.rb +7 -0
- data/lib/geordi/commands/cleanup_directory.rb +16 -0
- data/lib/geordi/commands/commit.rb +171 -0
- data/lib/geordi/commands/console.rb +24 -0
- data/lib/geordi/commands/create_database_yml.rb +18 -0
- data/lib/geordi/commands/create_databases.rb +16 -0
- data/lib/geordi/commands/cucumber.rb +20 -0
- data/lib/geordi/commands/deploy.rb +65 -0
- data/lib/geordi/commands/devserver.rb +14 -0
- data/lib/geordi/commands/dump.rb +63 -0
- data/lib/geordi/commands/migrate.rb +26 -0
- data/lib/geordi/commands/png_optimize.rb +92 -0
- data/lib/geordi/commands/rake.rb +21 -0
- data/lib/geordi/commands/remove_executable_flags.rb +14 -0
- data/lib/geordi/commands/rspec.rb +40 -0
- data/lib/geordi/commands/security_update.rb +56 -0
- data/lib/geordi/commands/setup.rb +33 -0
- data/lib/geordi/commands/setup_firefox_for_selenium.rb +6 -0
- data/lib/geordi/commands/setup_vnc.rb +84 -0
- data/lib/geordi/commands/shell.rb +20 -0
- data/lib/geordi/commands/test.rb +9 -0
- data/lib/geordi/commands/unit.rb +11 -0
- data/lib/geordi/commands/update.rb +33 -0
- data/lib/geordi/commands/version.rb +7 -0
- data/lib/geordi/commands/vnc_show.rb +6 -0
- data/lib/geordi/commands/with_firefox_for_selenium.rb +18 -0
- data/lib/geordi/commands/with_rake.rb +11 -0
- data/lib/geordi/{cuc.rb → cucumber.rb} +28 -39
- data/lib/geordi/dump_loader.rb +44 -70
- data/lib/geordi/firefox_for_selenium.rb +93 -74
- data/lib/geordi/interaction.rb +47 -0
- data/lib/geordi/remote.rb +66 -0
- data/lib/geordi/util.rb +60 -0
- data/lib/geordi/version.rb +1 -1
- data/lib/geordi.rb +1 -0
- metadata +50 -16
- data/bin/install-gems-remotely +0 -18
- data/bin/install-gems-remotely.sh +0 -16
- data/bin/power-deploy +0 -18
- data/bin/remotify-local-branch +0 -12
- data/lib/geordi/gitpt.rb +0 -175
@@ -1,15 +1,17 @@
|
|
1
1
|
require 'pathname'
|
2
|
+
require 'tempfile'
|
2
3
|
|
3
4
|
module Geordi
|
4
5
|
module FirefoxForSelenium
|
6
|
+
include Geordi::Interaction
|
5
7
|
|
6
8
|
FIREFOX_FOR_SELENIUM_BASE_PATH = Pathname.new('~/bin/firefoxes').expand_path
|
7
9
|
FIREFOX_FOR_SELENIUM_PROFILE_NAME = 'firefox-for-selenium'
|
8
10
|
DEFAULT_FIREFOX_VERSION = "5.0.1"
|
9
11
|
VERSION_SPECIFICATION_FILE = Pathname.new(".firefox-version")
|
10
12
|
|
11
|
-
def self.install
|
12
|
-
Installer.new.run
|
13
|
+
def self.install(version)
|
14
|
+
Installer.new(version).run
|
13
15
|
end
|
14
16
|
|
15
17
|
def self.path_from_config
|
@@ -33,6 +35,7 @@ module Geordi
|
|
33
35
|
|
34
36
|
|
35
37
|
class PathFromConfig
|
38
|
+
include Geordi::Interaction
|
36
39
|
|
37
40
|
def run
|
38
41
|
unless system_firefox
|
@@ -57,23 +60,26 @@ module Geordi
|
|
57
60
|
end
|
58
61
|
|
59
62
|
def default_version
|
60
|
-
|
61
|
-
|
63
|
+
warn "No firefox version given, defaulting to #{DEFAULT_FIREFOX_VERSION}."
|
64
|
+
note "Specify a version by putting it in a file named \"#{VERSION_SPECIFICATION_FILE}\"."
|
62
65
|
puts
|
63
66
|
DEFAULT_FIREFOX_VERSION
|
64
67
|
end
|
65
68
|
|
66
69
|
def validate_install
|
67
70
|
unless FirefoxForSelenium.binary(@version).exist?
|
68
|
-
|
69
|
-
|
70
|
-
puts
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
71
|
+
note "Firefox #{@version} not found."
|
72
|
+
|
73
|
+
puts left(<<-INSTRUCTIONS)
|
74
|
+
Install it with
|
75
|
+
geordi setup_firefox_for_selenium #{@version}
|
76
|
+
|
77
|
+
If you want to use your system firefox and not see this message, add
|
78
|
+
a .firefox-version file with the content "system".
|
79
|
+
|
80
|
+
INSTRUCTIONS
|
81
|
+
|
82
|
+
wait "Press ENTER to continue or press CTRL+C to abort."
|
77
83
|
end
|
78
84
|
end
|
79
85
|
|
@@ -85,9 +91,13 @@ module Geordi
|
|
85
91
|
|
86
92
|
|
87
93
|
class Installer
|
94
|
+
include Geordi::Interaction
|
95
|
+
|
96
|
+
def initialize(version)
|
97
|
+
@version = version
|
98
|
+
end
|
88
99
|
|
89
100
|
def run
|
90
|
-
parse_version
|
91
101
|
say_hello
|
92
102
|
check_if_run_before
|
93
103
|
download_firefox
|
@@ -108,12 +118,6 @@ module Geordi
|
|
108
118
|
execute_command("PATH=#{path}:$PATH firefox #{args}")
|
109
119
|
end
|
110
120
|
|
111
|
-
def die(message)
|
112
|
-
puts message
|
113
|
-
puts
|
114
|
-
exit(1)
|
115
|
-
end
|
116
|
-
|
117
121
|
def path
|
118
122
|
FirefoxForSelenium.path(@version)
|
119
123
|
end
|
@@ -130,64 +134,71 @@ module Geordi
|
|
130
134
|
FirefoxForSelenium.binary(@version, "firefox-original")
|
131
135
|
end
|
132
136
|
|
133
|
-
def parse_version
|
134
|
-
@version = ARGV.pop
|
135
|
-
@version or die("Usage: setup_firefox_for_selenium VERSION")
|
136
|
-
end
|
137
|
-
|
138
137
|
def say_hello
|
139
138
|
execute_command('clear')
|
140
|
-
|
141
|
-
puts
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
139
|
+
|
140
|
+
puts left(<<-HELLO)
|
141
|
+
Whenever Firefox updates, Selenium breaks. This is annoying. This
|
142
|
+
script will help you create an unchanging version of Firefox for your
|
143
|
+
Selenium tests.
|
144
|
+
|
145
|
+
In particular, this new copy of Firefox will have the following
|
146
|
+
properties:
|
147
|
+
|
148
|
+
- It won't update itself with a newer version
|
149
|
+
- It can co-exist with your regular Firefox installation (which you can
|
150
|
+
update at will)
|
151
|
+
- It will use a profile separate from the one you use for regular
|
152
|
+
Firefox browsing
|
153
|
+
- It will not try to re-use existing Firefox windows
|
154
|
+
- It will automatically be used for your Selenium scenarios if you run
|
155
|
+
your Cucumber using the cuc binary from the geordi gem.
|
156
|
+
- It will live in #{path}
|
157
|
+
|
158
|
+
HELLO
|
159
|
+
|
160
|
+
wait "Press ENTER when you're ready to begin."
|
154
161
|
end
|
155
162
|
|
156
163
|
def check_if_run_before
|
157
164
|
if original_binary.exist?
|
158
|
-
|
165
|
+
note 'This version seems to be already installed.'
|
159
166
|
puts
|
160
|
-
|
161
|
-
gets
|
167
|
+
wait 'Press ENTER to continue anyway or press CTRL+C to abort.'
|
162
168
|
end
|
163
169
|
end
|
164
170
|
|
165
171
|
def download_firefox
|
166
172
|
path.mkpath
|
167
|
-
|
168
|
-
puts
|
169
|
-
|
170
|
-
|
171
|
-
|
173
|
+
|
174
|
+
puts left(<<-INSTRUCTION)
|
175
|
+
Please download an old version of Firefox from: #{download_url}
|
176
|
+
Unpack it with: tar xvjf firefox-#{@version}.tar.bz2 -C #{path} --strip-components=1
|
177
|
+
Now #{path.join('firefox')} should be the firefox binary, not a directory.
|
178
|
+
|
179
|
+
INSTRUCTION
|
180
|
+
wait "Press ENTER when you're done."
|
181
|
+
|
172
182
|
File.file?(binary) or raise "Could not find #{binary}"
|
173
183
|
end
|
174
184
|
|
175
185
|
def create_separate_profile
|
176
|
-
|
177
|
-
# don't use the patched firefox binary for this, we don't want to give
|
186
|
+
note "Creating a separate profile named '#{FIREFOX_FOR_SELENIUM_PROFILE_NAME}' so your own profile will be safe..."
|
187
|
+
# don't use the patched firefox binary for this, we don't want to give
|
188
|
+
# a -p option here
|
178
189
|
execute_command("PATH=#{path}:$PATH firefox -no-remote -CreateProfile #{FIREFOX_FOR_SELENIUM_PROFILE_NAME}")
|
179
190
|
puts
|
180
191
|
end
|
181
192
|
|
182
193
|
def patch_old_firefox
|
183
|
-
|
194
|
+
note "Patching #{binary} so it uses the new profile and never re-uses windows from other Firefoxes..."
|
184
195
|
execute_command("mv #{binary} #{original_binary}")
|
185
196
|
execute_command("mv #{binary}-bin #{original_binary}-bin")
|
186
197
|
patched_binary = Tempfile.new('firefox')
|
187
|
-
patched_binary.write
|
188
|
-
#!/usr/bin/env ruby
|
189
|
-
exec('#{original_binary}', '-no-remote', '-P', '#{FIREFOX_FOR_SELENIUM_PROFILE_NAME}', *ARGV)
|
190
|
-
|
198
|
+
patched_binary.write left(<<-PATCH)
|
199
|
+
#!/usr/bin/env ruby
|
200
|
+
exec('#{original_binary}', '-no-remote', '-P', '#{FIREFOX_FOR_SELENIUM_PROFILE_NAME}', *ARGV)
|
201
|
+
PATCH
|
191
202
|
patched_binary.close
|
192
203
|
execute_command("mv #{patched_binary.path} #{binary}")
|
193
204
|
execute_command("chmod +x #{binary}")
|
@@ -195,30 +206,38 @@ eos
|
|
195
206
|
end
|
196
207
|
|
197
208
|
def configure_old_firefox
|
198
|
-
puts
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
+
puts left(<<-INSTRUCTION)
|
210
|
+
You will now have to do some manual configuration.
|
211
|
+
|
212
|
+
This script will open the patched copy of Firefox when you press ENTER.
|
213
|
+
Please perform the following steps manually:
|
214
|
+
|
215
|
+
- Disable the default browser check when Firefox launches
|
216
|
+
- Check that the version number is correct (#{@version})
|
217
|
+
- You should not see your bookmarks, add-ons, plugins from your regular
|
218
|
+
Firefox profile
|
219
|
+
- Disable all automatic updates under Edit / Preferences / Advanced /
|
220
|
+
Update (do this quickly or Firefox will already have updated)
|
221
|
+
|
222
|
+
INSTRUCTION
|
223
|
+
|
224
|
+
wait 'Open the patched copy of Firefox with ENTER.'
|
209
225
|
run_firefox_for_selenium
|
210
226
|
end
|
211
227
|
|
212
228
|
def kkthxbb
|
213
|
-
|
214
|
-
|
215
|
-
puts
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
229
|
+
success "Congratulations, you're done!"
|
230
|
+
|
231
|
+
puts left(<<-INSTRUCTION)
|
232
|
+
|
233
|
+
Your patched copy of Firefox will be used when you run Cucumber using
|
234
|
+
the cucumber script that comes with the geordi gem. If you prefer to run
|
235
|
+
Cucumber on your own, you must call it like this:
|
236
|
+
|
237
|
+
PATH=#{path}:$PATH cucumber
|
238
|
+
|
239
|
+
Enjoy!
|
240
|
+
INSTRUCTION
|
222
241
|
end
|
223
242
|
|
224
243
|
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Geordi
|
2
|
+
module Interaction
|
3
|
+
|
4
|
+
def announce(text)
|
5
|
+
message = "\n# #{text}"
|
6
|
+
puts "\e[4;34m#{message}\e[0m" # blue underline
|
7
|
+
end
|
8
|
+
|
9
|
+
def note(text)
|
10
|
+
puts '> ' + text
|
11
|
+
end
|
12
|
+
|
13
|
+
def warn(text)
|
14
|
+
message = "> #{text}"
|
15
|
+
puts "\e[33m#{message}\e[0m" # yellow
|
16
|
+
end
|
17
|
+
|
18
|
+
def note_cmd(text)
|
19
|
+
message = "> #{text}"
|
20
|
+
puts "\e[35m#{message}\e[0m" # pink
|
21
|
+
end
|
22
|
+
|
23
|
+
def fail(text)
|
24
|
+
message = "\nx #{text}"
|
25
|
+
puts "\e[31m#{message}\e[0m" # red
|
26
|
+
exit(1)
|
27
|
+
end
|
28
|
+
|
29
|
+
def success(text)
|
30
|
+
message = "\n> #{text}"
|
31
|
+
puts "\e[32m#{message}\e[0m" # green
|
32
|
+
end
|
33
|
+
|
34
|
+
def wait(text)
|
35
|
+
message = "#{text}"
|
36
|
+
puts "\e[36m#{message}\e[0m" # cyan
|
37
|
+
$stdin.gets
|
38
|
+
end
|
39
|
+
|
40
|
+
def left(string)
|
41
|
+
leading_whitespace = (string.match(/\A( +)[^ ]+/) || [])[1]
|
42
|
+
string.gsub! /^#{leading_whitespace}/, '' if leading_whitespace
|
43
|
+
string
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
require 'geordi/capistrano_config'
|
2
|
+
require 'geordi/interaction'
|
3
|
+
require 'geordi/util'
|
4
|
+
require 'highline/import'
|
5
|
+
require 'pathname'
|
6
|
+
|
7
|
+
module Geordi
|
8
|
+
class Remote
|
9
|
+
include Geordi::Interaction
|
10
|
+
|
11
|
+
REMOTE_DUMP_PATH = '~/dumps/dump_for_download.dump'
|
12
|
+
|
13
|
+
def initialize(stage)
|
14
|
+
@stage = stage
|
15
|
+
@config = CapistranoConfig.new(stage)
|
16
|
+
end
|
17
|
+
|
18
|
+
def select_server
|
19
|
+
selected_server = choose do |menu|
|
20
|
+
@config.servers.each do |server|
|
21
|
+
menu.choice(server) { server }
|
22
|
+
end
|
23
|
+
|
24
|
+
# Default to the first listed server (by convention, the first server
|
25
|
+
# in the deploy files is the primary one).
|
26
|
+
menu.default = '1'
|
27
|
+
menu.prompt = 'Connect to? [1] '
|
28
|
+
end
|
29
|
+
|
30
|
+
puts
|
31
|
+
selected_server
|
32
|
+
end
|
33
|
+
|
34
|
+
def dump(options = {})
|
35
|
+
shell(options.merge :remote_command => "dumple #{@config.env} --for_download")
|
36
|
+
|
37
|
+
destination_directory = File.join(@config.root, 'tmp')
|
38
|
+
FileUtils.mkdir_p destination_directory
|
39
|
+
destination_path = File.join(destination_directory, "#{@stage}.dump")
|
40
|
+
relative_destination = Pathname.new(destination_path).relative_path_from Pathname.new(@config.root)
|
41
|
+
|
42
|
+
puts
|
43
|
+
note "Downloading remote dump to #{relative_destination} ..."
|
44
|
+
Util.system! "scp #{@config.user}@#{@config.primary_server}:#{REMOTE_DUMP_PATH} #{destination_path}"
|
45
|
+
|
46
|
+
success "Dumped the #{@stage} database to #{relative_destination}."
|
47
|
+
|
48
|
+
destination_path
|
49
|
+
end
|
50
|
+
|
51
|
+
def console(options = {})
|
52
|
+
shell(options.merge :remote_command => Util.console_command(@config.env))
|
53
|
+
end
|
54
|
+
|
55
|
+
def shell(options = {})
|
56
|
+
server = options[:select_server] ? select_server : @config.primary_server
|
57
|
+
|
58
|
+
remote_command = "cd #{@config.path} && #{@config.shell}"
|
59
|
+
remote_command << " -c '#{options[:remote_command]}'" if options[:remote_command]
|
60
|
+
|
61
|
+
note 'Connecting to ' + server.to_s
|
62
|
+
Util.system! 'ssh', "#{@config.user}@#{server}", '-t', remote_command
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
end
|
data/lib/geordi/util.rb
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'geordi/interaction'
|
2
|
+
|
3
|
+
module Geordi
|
4
|
+
class Util
|
5
|
+
class << self
|
6
|
+
include Geordi::Interaction
|
7
|
+
|
8
|
+
# Geordi commands sometimes require external gems. However, we don't want
|
9
|
+
# all employed gems as runtime dependencies because that would
|
10
|
+
# unnecessarily slow down all commands.
|
11
|
+
# Thus, we have this handy method here.
|
12
|
+
def installing_missing_gems(&block)
|
13
|
+
yield
|
14
|
+
rescue LoadError => e
|
15
|
+
gem_name = e.message.split('--').last.strip
|
16
|
+
install_command = 'gem install ' + gem_name
|
17
|
+
|
18
|
+
# install missing gem
|
19
|
+
warn 'Probably missing gem: ' + gem_name
|
20
|
+
wait 'Auto-install it?'
|
21
|
+
system! install_command, :show_cmd => true
|
22
|
+
|
23
|
+
# retry
|
24
|
+
Gem.clear_paths
|
25
|
+
note 'Trying again ...'
|
26
|
+
require gem_name
|
27
|
+
retry
|
28
|
+
end
|
29
|
+
|
30
|
+
# Run a command with a clean environment.
|
31
|
+
# Print an error message and exit if the command fails.
|
32
|
+
#
|
33
|
+
# Options: show_cmd, fail_message
|
34
|
+
def system!(*commands)
|
35
|
+
options = commands.last.is_a?(Hash) ? commands.pop : {}
|
36
|
+
note_cmd commands.join(' ') if options[:show_cmd]
|
37
|
+
|
38
|
+
# Remove Geordi's Bundler environment when running commands.
|
39
|
+
Bundler.clean_system(*commands) or fail(options[:fail_message] || 'Something went wrong.')
|
40
|
+
end
|
41
|
+
|
42
|
+
def console_command(environment)
|
43
|
+
if File.exists?('script/console')
|
44
|
+
'script/console ' + environment # Rails 2
|
45
|
+
else
|
46
|
+
'bundle exec rails console ' + environment
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def server_command
|
51
|
+
if File.exists?('script/server')
|
52
|
+
'script/server' # Rails 2
|
53
|
+
else
|
54
|
+
'bundle exec rails server' # Rails 3+
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
data/lib/geordi/version.rb
CHANGED
data/lib/geordi.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'geordi/cli'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: geordi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henning Koch
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Collection of command line tools we use in our daily work with Ruby,
|
14
14
|
Rails and Linux at makandra.
|
@@ -26,16 +26,13 @@ executables:
|
|
26
26
|
- deploy-to-production
|
27
27
|
- dump-for
|
28
28
|
- dumple
|
29
|
+
- geordi
|
29
30
|
- gitpt
|
30
|
-
- install-gems-remotely
|
31
|
-
- install-gems-remotely.sh
|
32
31
|
- launchy_browser
|
33
32
|
- load-dump
|
34
33
|
- migrate-all
|
35
34
|
- optimize-png
|
36
|
-
- power-deploy
|
37
35
|
- power-rake
|
38
|
-
- remotify-local-branch
|
39
36
|
- remove-executable-flags
|
40
37
|
- rs
|
41
38
|
- run_tests
|
@@ -45,7 +42,8 @@ executables:
|
|
45
42
|
extensions: []
|
46
43
|
extra_rdoc_files: []
|
47
44
|
files:
|
48
|
-
-
|
45
|
+
- .gitignore
|
46
|
+
- .ruby-version
|
49
47
|
- Gemfile
|
50
48
|
- LICENSE
|
51
49
|
- README.md
|
@@ -61,16 +59,13 @@ files:
|
|
61
59
|
- bin/deploy-to-production
|
62
60
|
- bin/dump-for
|
63
61
|
- bin/dumple
|
62
|
+
- bin/geordi
|
64
63
|
- bin/gitpt
|
65
|
-
- bin/install-gems-remotely
|
66
|
-
- bin/install-gems-remotely.sh
|
67
64
|
- bin/launchy_browser
|
68
65
|
- bin/load-dump
|
69
66
|
- bin/migrate-all
|
70
67
|
- bin/optimize-png
|
71
|
-
- bin/power-deploy
|
72
68
|
- bin/power-rake
|
73
|
-
- bin/remotify-local-branch
|
74
69
|
- bin/remove-executable-flags
|
75
70
|
- bin/rs
|
76
71
|
- bin/run_tests
|
@@ -78,29 +73,68 @@ files:
|
|
78
73
|
- bin/shell-for
|
79
74
|
- bin/tests
|
80
75
|
- geordi.gemspec
|
76
|
+
- lib/geordi.rb
|
77
|
+
- lib/geordi/COMMAND_TEMPLATE
|
81
78
|
- lib/geordi/capistrano.rb
|
82
|
-
- lib/geordi/
|
79
|
+
- lib/geordi/capistrano_config.rb
|
80
|
+
- lib/geordi/cli.rb
|
81
|
+
- lib/geordi/commands/all_targets.rb
|
82
|
+
- lib/geordi/commands/apache_site.rb
|
83
|
+
- lib/geordi/commands/bundle_install.rb
|
84
|
+
- lib/geordi/commands/cleanup_directory.rb
|
85
|
+
- lib/geordi/commands/commit.rb
|
86
|
+
- lib/geordi/commands/console.rb
|
87
|
+
- lib/geordi/commands/create_database_yml.rb
|
88
|
+
- lib/geordi/commands/create_databases.rb
|
89
|
+
- lib/geordi/commands/cucumber.rb
|
90
|
+
- lib/geordi/commands/deploy.rb
|
91
|
+
- lib/geordi/commands/devserver.rb
|
92
|
+
- lib/geordi/commands/dump.rb
|
93
|
+
- lib/geordi/commands/migrate.rb
|
94
|
+
- lib/geordi/commands/png_optimize.rb
|
95
|
+
- lib/geordi/commands/rake.rb
|
96
|
+
- lib/geordi/commands/remove_executable_flags.rb
|
97
|
+
- lib/geordi/commands/rspec.rb
|
98
|
+
- lib/geordi/commands/security_update.rb
|
99
|
+
- lib/geordi/commands/setup.rb
|
100
|
+
- lib/geordi/commands/setup_firefox_for_selenium.rb
|
101
|
+
- lib/geordi/commands/setup_vnc.rb
|
102
|
+
- lib/geordi/commands/shell.rb
|
103
|
+
- lib/geordi/commands/test.rb
|
104
|
+
- lib/geordi/commands/unit.rb
|
105
|
+
- lib/geordi/commands/update.rb
|
106
|
+
- lib/geordi/commands/version.rb
|
107
|
+
- lib/geordi/commands/vnc_show.rb
|
108
|
+
- lib/geordi/commands/with_firefox_for_selenium.rb
|
109
|
+
- lib/geordi/commands/with_rake.rb
|
110
|
+
- lib/geordi/cucumber.rb
|
83
111
|
- lib/geordi/dump_loader.rb
|
84
112
|
- lib/geordi/firefox_for_selenium.rb
|
85
|
-
- lib/geordi/
|
113
|
+
- lib/geordi/interaction.rb
|
114
|
+
- lib/geordi/remote.rb
|
86
115
|
- lib/geordi/run_tests.rb
|
116
|
+
- lib/geordi/util.rb
|
87
117
|
- lib/geordi/version.rb
|
88
118
|
homepage: http://makandra.com
|
89
119
|
licenses:
|
90
120
|
- MIT
|
91
121
|
metadata: {}
|
92
|
-
post_install_message:
|
122
|
+
post_install_message: ! "\n ********************************************\n\n geordi
|
123
|
+
1.0.0 moves most of the scripts to\n the `geordi` binary. Run `geordi` and\n
|
124
|
+
\ `geordi help <cmd>` for further information.\n\n Tip: Create an alias for
|
125
|
+
geordi for quick \n access. Add this to your ~/.bashrc:\n\n alias g=\"geordi\"\n\n
|
126
|
+
\ ********************************************\n\n"
|
93
127
|
rdoc_options: []
|
94
128
|
require_paths:
|
95
129
|
- lib
|
96
130
|
required_ruby_version: !ruby/object:Gem::Requirement
|
97
131
|
requirements:
|
98
|
-
- -
|
132
|
+
- - ! '>='
|
99
133
|
- !ruby/object:Gem::Version
|
100
134
|
version: '0'
|
101
135
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
102
136
|
requirements:
|
103
|
-
- -
|
137
|
+
- - ! '>='
|
104
138
|
- !ruby/object:Gem::Version
|
105
139
|
version: '0'
|
106
140
|
requirements: []
|
data/bin/install-gems-remotely
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
|
4
|
-
warn <<EOWARNING
|
5
|
-
|
6
|
-
********************************************************
|
7
|
-
install-gems-remotely is deprecated
|
8
|
-
-----------------------------------
|
9
|
-
|
10
|
-
Gems should be automatically installed when deploying.
|
11
|
-
If they aren't: See http://gembundler.com/deploying.html
|
12
|
-
********************************************************
|
13
|
-
|
14
|
-
EOWARNING
|
15
|
-
|
16
|
-
# sorry
|
17
|
-
path = Gem.bin_path('geordi', 'install-gems-remotely.sh')
|
18
|
-
exec path, *ARGV
|
@@ -1,16 +0,0 @@
|
|
1
|
-
#!/bin/sh
|
2
|
-
if [ -z "$1" ]; then
|
3
|
-
echo "Please specify the remote server name"
|
4
|
-
exit 1
|
5
|
-
fi
|
6
|
-
mkdir -p tmp
|
7
|
-
if ls vendor/gems/*/*.gemspec > /dev/null 2>&1; then
|
8
|
-
tar cf tmp/gemfiles_for_remote_install Gemfile Gemfile.lock vendor/gems
|
9
|
-
else
|
10
|
-
tar cf tmp/gemfiles_for_remote_install Gemfile Gemfile.lock
|
11
|
-
fi
|
12
|
-
scp tmp/gemfiles_for_remote_install $1:~
|
13
|
-
stty_orig=`stty -g`
|
14
|
-
stty -echo
|
15
|
-
ssh -t $1 "mkdir /tmp/install_gems; mv gemfiles_for_remote_install /tmp/install_gems; cd /tmp/install_gems; tar xf gemfiles_for_remote_install; bundle install; rm -rf /tmp/install_gems"
|
16
|
-
stty $stty_orig
|
data/bin/power-deploy
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
warn <<EOWARNING
|
4
|
-
|
5
|
-
**********************************************************************
|
6
|
-
power-deploy is deprecated
|
7
|
-
--------------------------
|
8
|
-
|
9
|
-
You should simply use "cap deploy:migrations"
|
10
|
-
|
11
|
-
If that does not do what you want, you should fix your deploy scripts.
|
12
|
-
See http://makandracards.com/makandra/1176
|
13
|
-
**********************************************************************
|
14
|
-
|
15
|
-
EOWARNING
|
16
|
-
|
17
|
-
stage = ARGV[0]
|
18
|
-
exec "cap #{stage} deploy && cap #{stage} deploy:migrate && cap #{stage} deploy:restart"
|
data/bin/remotify-local-branch
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
puts
|
4
|
-
puts " Deprecation Notification: This script does nothing."
|
5
|
-
puts
|
6
|
-
puts " Pushing a new branch and tracking it immediately with plain git is so easy now."
|
7
|
-
puts " https://makandracards.com/makandra/7895-git-push-a-new-branch-and-track-it-immediately"
|
8
|
-
puts
|
9
|
-
puts " Simple use the git command"
|
10
|
-
puts
|
11
|
-
puts " git push -u"
|
12
|
-
puts
|