gitpusshuten 0.0.1 → 0.0.2
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/Gemfile.lock +1 -1
- data/bin/heavenly +0 -0
- data/gitpusshuten.gemspec +1 -1
- data/lib/gitpusshuten/command.rb +14 -2
- data/lib/gitpusshuten/commands/push.rb +19 -0
- data/lib/gitpusshuten/hooks.rb +1 -1
- data/lib/gitpusshuten/modules/redis/command.rb +79 -0
- data/lib/gitpusshuten/modules/rvm/command.rb +1 -1
- data/lib/gitpusshuten.rb +3 -2
- data/spec/hooks_spec.rb +1 -1
- metadata +4 -3
data/Gemfile.lock
CHANGED
data/bin/heavenly
CHANGED
File without changes
|
data/gitpusshuten.gemspec
CHANGED
data/lib/gitpusshuten/command.rb
CHANGED
@@ -56,7 +56,7 @@ module GitPusshuTen
|
|
56
56
|
##
|
57
57
|
# Wrapper for the command instance
|
58
58
|
def command
|
59
|
-
@command ||= "GitPusshuTen::Commands::#{cli.command
|
59
|
+
@command ||= "GitPusshuTen::Commands::#{classify_with_plural(cli.command)}".constantize.new(cli, configuration, hooks, environment)
|
60
60
|
end
|
61
61
|
|
62
62
|
##
|
@@ -134,7 +134,7 @@ module GitPusshuTen
|
|
134
134
|
##
|
135
135
|
# Returns the constant of a command
|
136
136
|
def get_constant_for(command)
|
137
|
-
"GitPusshuTen::Commands::#{command
|
137
|
+
"GitPusshuTen::Commands::#{classify_with_plural(command)}".constantize
|
138
138
|
end
|
139
139
|
|
140
140
|
##
|
@@ -143,5 +143,17 @@ module GitPusshuTen
|
|
143
143
|
value.to_s.color(:yellow)
|
144
144
|
end
|
145
145
|
|
146
|
+
##
|
147
|
+
# Classifies the command, but re-pluralizes it in case
|
148
|
+
# it ended with the 's' character to ensure the correct
|
149
|
+
# command is being invoked
|
150
|
+
def classify_with_plural(word)
|
151
|
+
if word =~ /s$/
|
152
|
+
word.classify + 's'
|
153
|
+
else
|
154
|
+
word.classify
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
146
158
|
end
|
147
159
|
end
|
@@ -6,6 +6,8 @@ module GitPusshuTen
|
|
6
6
|
example "heavenly push branch develop to staging # Pushes the specified branch to the staging environment."
|
7
7
|
example "heavenly push tag 1.0.3 to staging # Pushes the specified tag to the staging environment."
|
8
8
|
example "heavenly push ref 2dbec02aa0b8604b8512e2fcbb8aac582c7f6a73 to production # Pushes the specified ref to the production environment."
|
9
|
+
example "heavenly push production # Pushes the master branch to the production environment. (Conventional)"
|
10
|
+
example "heavenly push staging # Pushes the develop branch to the staging environment. (Conventional)"
|
9
11
|
|
10
12
|
attr_accessor :type
|
11
13
|
|
@@ -49,6 +51,23 @@ module GitPusshuTen
|
|
49
51
|
git.add_remote(e.name, "ssh://#{c.user}@#{c.ip}:#{c.port}/#{e.app_dir}")
|
50
52
|
end
|
51
53
|
|
54
|
+
##
|
55
|
+
# Conventional command actions
|
56
|
+
|
57
|
+
##
|
58
|
+
# Pushes the master branch to the production environment.
|
59
|
+
def perform_production!
|
60
|
+
message "Pushing branch master to the production environment."
|
61
|
+
git.push(:branch, "master").to("production")
|
62
|
+
end
|
63
|
+
|
64
|
+
##
|
65
|
+
# Pushes the master branch to the production environment.
|
66
|
+
def perform_stage!
|
67
|
+
message "Pushing branch develop to the stage environment."
|
68
|
+
git.push(:branch, "develop").to("staging")
|
69
|
+
end
|
70
|
+
|
52
71
|
end
|
53
72
|
end
|
54
73
|
end
|
data/lib/gitpusshuten/hooks.rb
CHANGED
@@ -36,7 +36,7 @@ module GitPusshuTen
|
|
36
36
|
if File.exist?(hooks_file)
|
37
37
|
instance_eval(File.read(hooks_file))
|
38
38
|
else
|
39
|
-
GitPusshuTen::Log.warning "Could not locate the hooks.rb file
|
39
|
+
GitPusshuTen::Log.warning "Could not locate the hooks.rb file."
|
40
40
|
end
|
41
41
|
self
|
42
42
|
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module GitPusshuTen
|
3
|
+
module Commands
|
4
|
+
class Redis < GitPusshuTen::Commands::Base
|
5
|
+
description "[Module] Redis commands."
|
6
|
+
usage "redis <command> for <enviroment>"
|
7
|
+
example "heavenly redis install # Installs Redis (system wide) and downloads config template."
|
8
|
+
example "heavenly redis upload-configuration # Uploads the Redis configuration template to the server, will install Redis if not already present."
|
9
|
+
|
10
|
+
def initialize(*objects)
|
11
|
+
super
|
12
|
+
|
13
|
+
@command = cli.arguments.shift
|
14
|
+
|
15
|
+
help if command.nil? or e.name.nil?
|
16
|
+
|
17
|
+
@command = @command.underscore
|
18
|
+
|
19
|
+
##
|
20
|
+
# Default Configuration
|
21
|
+
@installation_dir = "/etc/redis"
|
22
|
+
@configuration_dir = @installation_dir
|
23
|
+
@configuration_file = File.join(@configuration_dir, 'redis.conf')
|
24
|
+
@local_configuration_dir = File.join(local.gitpusshuten_dir, 'redis')
|
25
|
+
@local_configuration_file = File.join(@local_configuration_dir, "redis.conf")
|
26
|
+
end
|
27
|
+
|
28
|
+
def perform_install!
|
29
|
+
if e.installed?('redis-server')
|
30
|
+
error "Redis is already installed."
|
31
|
+
exit
|
32
|
+
end
|
33
|
+
message "Going to install Redis Key-Value store systemwide"
|
34
|
+
Spinner.return :message => "Installing #{y('Redis')}.." do
|
35
|
+
e.install!("redis-server")
|
36
|
+
g('Done!')
|
37
|
+
end
|
38
|
+
|
39
|
+
create_file = true
|
40
|
+
if File.exist?(@local_configuration_file)
|
41
|
+
warning "#{y( @local_configuration_file)} already exists, do you want to overwrite it?"
|
42
|
+
create_file = yes?
|
43
|
+
end
|
44
|
+
if create_file
|
45
|
+
download_redis_configuration_from_server!
|
46
|
+
message "The redis configuration has been downloaded to#{y( @local_configuration_file)}."
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def perform_upload_configuration!
|
51
|
+
unless e.directory?(@installation_dir)
|
52
|
+
error "Could not find the Redis installation directory in #{y(@installation_dir)}"
|
53
|
+
perform_install!
|
54
|
+
exit
|
55
|
+
end
|
56
|
+
|
57
|
+
unless File.exist?(@local_configuration_file)
|
58
|
+
error "Could not find the local Redis configuration file in #{y(@local_configuration_file)}"
|
59
|
+
download_redis_configuration_from_server!
|
60
|
+
message "Redis configuration has been fetched from the server, edit it and upload it again."
|
61
|
+
exit
|
62
|
+
end
|
63
|
+
Spinner.return :message => "Uploading Redis configuration file #{y(@local_configuration_file)}.." do
|
64
|
+
e.scp_as_root(:upload, @local_configuration_file, @configuration_dir)
|
65
|
+
g('Done!')
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def download_redis_configuration_from_server!
|
70
|
+
FileUtils.mkdir_p(@local_configuration_dir)
|
71
|
+
Spinner.return :message => "Downloading redis configuration from the server.." do
|
72
|
+
e.scp_as_root(:download, @configuration_file, "#{@local_configuration_file}")
|
73
|
+
g("Finished downloading!")
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
@@ -12,7 +12,7 @@ module GitPusshuTen
|
|
12
12
|
example "heavenly rvm remove-ruby for production # Uninstalls and removes the Ruby's complete source from RVM."
|
13
13
|
example "heavenly rvm set-default-ruby for production # Sets the system wide default Ruby."
|
14
14
|
example " This is required if you want to change the Ruby version"
|
15
|
-
example " for your Ruby applications running Passenger."
|
15
|
+
example " for your Ruby applications running Phusion Passenger."
|
16
16
|
|
17
17
|
def initialize(*objects)
|
18
18
|
super
|
data/lib/gitpusshuten.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'FileUtils'
|
1
2
|
require 'open-uri'
|
2
3
|
require 'yaml'
|
3
4
|
|
@@ -8,7 +9,7 @@ require 'net/ssh'
|
|
8
9
|
require 'net/scp'
|
9
10
|
require 'highline/import'
|
10
11
|
require 'rainbow'
|
11
|
-
require 'json'
|
12
|
+
require 'json'
|
12
13
|
|
13
14
|
Dir[File.expand_path(File.join(File.dirname(__FILE__), 'gitpusshuten/**/*'))].each do |file|
|
14
15
|
if not File.directory?(file) and not file =~ /\/modules\/.+\/hooks\.rb/
|
@@ -17,5 +18,5 @@ Dir[File.expand_path(File.join(File.dirname(__FILE__), 'gitpusshuten/**/*'))].ea
|
|
17
18
|
end
|
18
19
|
|
19
20
|
module GitPusshuTen
|
20
|
-
VERSION = '0.0.
|
21
|
+
VERSION = '0.0.2'
|
21
22
|
end
|
data/spec/hooks_spec.rb
CHANGED
@@ -27,7 +27,7 @@ describe GitPusshuTen::Hooks do
|
|
27
27
|
|
28
28
|
context "when the hooks file does not exist" do
|
29
29
|
it "should issue a warning" do
|
30
|
-
GitPusshuTen::Log.expects(:warning).with("Could not locate the hooks.rb file
|
30
|
+
GitPusshuTen::Log.expects(:warning).with("Could not locate the hooks.rb file.")
|
31
31
|
hooks_staging.should == hooks_staging.parse!(File.expand_path(File.dirname(__FILE__) + '/fixtures/hooks_not_exist.rb'))
|
32
32
|
end
|
33
33
|
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 2
|
9
|
+
version: 0.0.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Michael van Rooijen
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-11-
|
17
|
+
date: 2010-11-21 00:00:00 +01:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -165,6 +165,7 @@ files:
|
|
165
165
|
- lib/gitpusshuten/modules/nginx/command.rb
|
166
166
|
- lib/gitpusshuten/modules/passenger/command.rb
|
167
167
|
- lib/gitpusshuten/modules/passenger/hooks.rb
|
168
|
+
- lib/gitpusshuten/modules/redis/command.rb
|
168
169
|
- lib/gitpusshuten/modules/rvm/command.rb
|
169
170
|
- lib/templates/config.rb
|
170
171
|
- lib/templates/hooks.rb
|