hanzo 0.4.4 → 0.4.5
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 +4 -4
- data/lib/hanzo/cli.rb +2 -0
- data/lib/hanzo/modules/diff.rb +51 -0
- data/lib/hanzo/version.rb +1 -1
- data/spec/cli/diff_spec.rb +28 -0
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f674c358cb028c6d898cbfe965302cbebe29fc1e
|
4
|
+
data.tar.gz: 035ddff1d09974cc28cf2e34fd9d355bd6ccac55
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eef2e1e94cd27dd9ee18d360011a68f9625c2c756809ecb806b460a630fc2bcab7b86813b51e224d5db69f288882b9f137458f3431bd5d5b0561a535bb958b4a
|
7
|
+
data.tar.gz: b4a635f8317df367ba83f8d87f68cb752103ee575ab3dce7589e4353463712bd0ad9f6e5d71405f12fc6b8d309257f27849b32c33bdfa0404c7e19ba25901f20
|
data/lib/hanzo/cli.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'hanzo/modules/deploy'
|
2
|
+
require 'hanzo/modules/diff'
|
2
3
|
require 'hanzo/modules/install'
|
3
4
|
require 'hanzo/modules/config'
|
4
5
|
|
@@ -31,6 +32,7 @@ module Hanzo
|
|
31
32
|
|
32
33
|
Available actions:
|
33
34
|
deploy - Deploy a branch or a tag
|
35
|
+
diff - Show the diff between HEAD and the current release
|
34
36
|
install - Install Hanzo configuration
|
35
37
|
config - Manage Heroku configuration variables
|
36
38
|
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module Hanzo
|
2
|
+
class Diff < Base
|
3
|
+
# Classes
|
4
|
+
UnknownEnvironment = Class.new(StandardError)
|
5
|
+
UninstalledEnvironment = Class.new(StandardError)
|
6
|
+
|
7
|
+
protected
|
8
|
+
|
9
|
+
def initialize_variables
|
10
|
+
@env = extract_argument(1)
|
11
|
+
@env ||= Hanzo::Installers::Remotes.environments.keys.first
|
12
|
+
end
|
13
|
+
|
14
|
+
def initialize_cli
|
15
|
+
initialize_help && return if @env.nil?
|
16
|
+
|
17
|
+
diff
|
18
|
+
rescue UnknownEnvironment
|
19
|
+
Hanzo.unindent_print "Environment `#{@env}` doesn't exist. Add it to .heroku-remotes and run:\n hanzo install remotes", :red
|
20
|
+
Hanzo.unindent_print "\nFor more information, read https://github.com/mirego/hanzo#install-remotes", :red
|
21
|
+
rescue UninstalledEnvironment
|
22
|
+
Hanzo.unindent_print "Environment `#{@env}` has been found in your .heroku-remotes file. Before using it, you must install it:\n hanzo install remotes", :red
|
23
|
+
end
|
24
|
+
|
25
|
+
def initialize_help
|
26
|
+
@options.banner = <<-BANNER.unindent
|
27
|
+
Usage: hanzo diff ENVIRONMENT
|
28
|
+
|
29
|
+
Available environments
|
30
|
+
BANNER
|
31
|
+
|
32
|
+
Hanzo::Installers::Remotes.environments.each do |env|
|
33
|
+
@options.banner << " - #{env.first}\n"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def diff
|
38
|
+
validate_environment_existence!
|
39
|
+
Hanzo.run "git remote update #{@env} && git diff #{@env}/master...HEAD"
|
40
|
+
end
|
41
|
+
|
42
|
+
def validate_environment_existence!
|
43
|
+
raise UnknownEnvironment unless fetcher.exist?
|
44
|
+
raise UninstalledEnvironment unless fetcher.installed?
|
45
|
+
end
|
46
|
+
|
47
|
+
def fetcher
|
48
|
+
@fetcher ||= Hanzo::Fetchers::Environment.new(@env)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
data/lib/hanzo/version.rb
CHANGED
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Hanzo::CLI do
|
4
|
+
describe :diff do
|
5
|
+
let(:env) { 'production' }
|
6
|
+
let(:diff!) { Hanzo::CLI.new(['diff', env]) }
|
7
|
+
let(:heroku_remotes) { { 'production' => 'heroku-app-production' } }
|
8
|
+
|
9
|
+
let(:diff_cmd) { "git remote update #{env} && git diff #{env}/master...HEAD" }
|
10
|
+
|
11
|
+
before do
|
12
|
+
expect(Hanzo::Installers::Remotes).to receive(:environments).and_return(['production'])
|
13
|
+
expect(Hanzo::Installers::Remotes).to receive(:installed_environments).and_return(['production'])
|
14
|
+
end
|
15
|
+
|
16
|
+
context 'successful diff' do
|
17
|
+
let(:diff_result) { true }
|
18
|
+
|
19
|
+
before do
|
20
|
+
expect(Hanzo).to receive(:run).with(diff_cmd).once.and_return(diff_result)
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should update the right remote and run a diff' do
|
24
|
+
diff!
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hanzo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Garneau
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-11-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -119,12 +119,14 @@ files:
|
|
119
119
|
- lib/hanzo/heroku.rb
|
120
120
|
- lib/hanzo/modules/config.rb
|
121
121
|
- lib/hanzo/modules/deploy.rb
|
122
|
+
- lib/hanzo/modules/diff.rb
|
122
123
|
- lib/hanzo/modules/install.rb
|
123
124
|
- lib/hanzo/modules/installers/labs.rb
|
124
125
|
- lib/hanzo/modules/installers/remotes.rb
|
125
126
|
- lib/hanzo/version.rb
|
126
127
|
- spec/cli/config_spec.rb
|
127
128
|
- spec/cli/deploy_spec.rb
|
129
|
+
- spec/cli/diff_spec.rb
|
128
130
|
- spec/cli/install_spec.rb
|
129
131
|
- spec/fetchers/environment_spec.rb
|
130
132
|
- spec/spec_helper.rb
|
@@ -148,13 +150,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
148
150
|
version: '0'
|
149
151
|
requirements: []
|
150
152
|
rubyforge_project:
|
151
|
-
rubygems_version: 2.
|
153
|
+
rubygems_version: 2.5.1
|
152
154
|
signing_key:
|
153
155
|
specification_version: 4
|
154
156
|
summary: Hanzo is a tool to handle deployments in multiple environments on Heroku.
|
155
157
|
test_files:
|
156
158
|
- spec/cli/config_spec.rb
|
157
159
|
- spec/cli/deploy_spec.rb
|
160
|
+
- spec/cli/diff_spec.rb
|
158
161
|
- spec/cli/install_spec.rb
|
159
162
|
- spec/fetchers/environment_spec.rb
|
160
163
|
- spec/spec_helper.rb
|