rdeis 0.0.4 → 0.0.8
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/gemconversion +2 -2
- data/lib/rdeis/base.rb +17 -0
- data/lib/rdeis/bootstrap.rb +5 -6
- data/lib/rdeis/deis.rb +6 -0
- data/lib/rdeis/deploy.rb +10 -4
- data/lib/rdeis/git.rb +7 -3
- data/lib/rdeis/upgrade.rb +46 -0
- data/lib/rdeis/version.rb +2 -1
- data/lib/rdeis.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1df42fa5b070732b2b16e19b57508360a42c282e
|
4
|
+
data.tar.gz: 2361bb85b58778e8a68c325968c49b11d02ca5ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8bfaf8f5454b2499175d8336fd2fa1a6d3c20bbab7ba421feeb442b2cefdd254f8290f710007d3a0ea4274fb20fad3cfa24c58f67e92337d3d3dc0d95f18ddd6
|
7
|
+
data.tar.gz: 5609ff5c1e12fb08d3931e45a9c0395e920c9e2b083af77ff460817a7fccf6b83b28ea1e15e384d3d88314ff1698dd526b2651de22685a88d77e45418a917148
|
data/gemconversion
CHANGED
@@ -23,9 +23,9 @@ if File.exists?(file)
|
|
23
23
|
commit = `git commit Gemfile Gemfile.lock -m '[rdeis] Automated Gemfile conversion - #{Time.now.to_s}' 2>&1 | grep 'Error' | wc -l`.to_i if install == 1 && status > 0
|
24
24
|
|
25
25
|
if status == 0
|
26
|
-
$stdout.puts "
|
26
|
+
$stdout.puts "Converted and commited already"
|
27
27
|
elsif install == 1 && commit == 0
|
28
|
-
$stdout.puts "Converted
|
28
|
+
$stdout.puts "Converted and commited"
|
29
29
|
else
|
30
30
|
abort("Error: install / commit failed (#{install}/#{commit})")
|
31
31
|
end
|
data/lib/rdeis/base.rb
CHANGED
@@ -19,5 +19,22 @@ module DEIS
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
+
def local_shell
|
23
|
+
`echo $SHELL | sed -E "s#/bin/##"`.strip
|
24
|
+
end
|
25
|
+
|
26
|
+
def local_profile
|
27
|
+
"#{ENV['HOME']}/.profile"
|
28
|
+
end
|
29
|
+
|
30
|
+
def remote_profile
|
31
|
+
"$HOME/.profile"
|
32
|
+
end
|
33
|
+
|
34
|
+
def local_shell_env_include(profile, file_to_include)
|
35
|
+
content = File.open(profile, "r"){ |f| f.read }.gsub(". #{file_to_include}", "") + "\n. #{file_to_include}"
|
36
|
+
File.open(profile, "w") { |f| f.write(content) }
|
37
|
+
end
|
38
|
+
|
22
39
|
end
|
23
40
|
end
|
data/lib/rdeis/bootstrap.rb
CHANGED
@@ -45,7 +45,7 @@ module DEIS
|
|
45
45
|
|
46
46
|
# add a hush login file so we dont get the MOTD ouput in our shell commands
|
47
47
|
def hush
|
48
|
-
if yes?
|
48
|
+
if yes?("Does the deploy location run a Message of the Day? ", :yellow)
|
49
49
|
run("if [[ ! -f $HOME/.hushlogin ]]; then > $HOME/.hushlogin ; fi ")
|
50
50
|
end
|
51
51
|
end
|
@@ -80,16 +80,15 @@ module DEIS
|
|
80
80
|
# run remote, keep the $HOME notation as we want that evaluated in the cmd
|
81
81
|
run("mkdir -p #{DEIS::Storage::BASE_PATH} ; echo -e '#{out}' > #{file}") if ! @proxy.nil?
|
82
82
|
# remove any existing references from the various shell options on the local machine
|
83
|
-
shell
|
84
|
-
profile =
|
83
|
+
shell = self.local_shell
|
84
|
+
profile = self.local_profile
|
85
85
|
if ! profile.nil?
|
86
|
-
|
87
|
-
File.open(profile, "w") { |f| f.write(content) }
|
86
|
+
self.local_shell_env_include(profile, file)
|
88
87
|
else
|
89
88
|
say "Could not save environment setup", :red
|
90
89
|
end
|
91
90
|
# add include to the remote profile
|
92
|
-
run("echo -e '. #{file}\n' >>
|
91
|
+
run("echo -e '. #{file}\n' >> #{self.remote_profile}") if ! @proxy.nil?
|
93
92
|
end
|
94
93
|
|
95
94
|
end
|
data/lib/rdeis/deis.rb
CHANGED
@@ -154,6 +154,7 @@ module DEIS
|
|
154
154
|
|
155
155
|
desc "bootstrap <type>", "first run install setup funcs"
|
156
156
|
def bootstrap(action="all")
|
157
|
+
self.updgrade
|
157
158
|
if DEIS::Bootstrap.method_defined? action
|
158
159
|
bootstrap = DEIS::Bootstrap.new(options)
|
159
160
|
bootstrap.send(action)
|
@@ -162,6 +163,11 @@ module DEIS
|
|
162
163
|
end
|
163
164
|
end
|
164
165
|
|
166
|
+
desc "updgrade", "See if older version exists we can copy over"
|
167
|
+
def updgrade
|
168
|
+
run = DEIS::Upgrade.new(options)
|
169
|
+
run.all
|
170
|
+
end
|
165
171
|
|
166
172
|
end
|
167
173
|
end
|
data/lib/rdeis/deploy.rb
CHANGED
@@ -133,7 +133,7 @@ module DEIS
|
|
133
133
|
output[" init and remote"] = DEIS::Deploy::YES
|
134
134
|
end
|
135
135
|
# checkout to the correct branch from the remote
|
136
|
-
checkout = run ("cd #{@deploy_to} && #{DEIS::Git.checkout_to_ref_cmd('origin/'+@ref)}")
|
136
|
+
checkout = run ("cd #{@deploy_to} && #{DEIS::Git.checkout_to_ref_cmd('origin/'+@ref, @branch)}")
|
137
137
|
output[" checkout to #{@ref[0..8]}"] = if checkout then DEIS::Deploy::YES else DEIS::Deploy::NO end
|
138
138
|
print_table output
|
139
139
|
end
|
@@ -160,12 +160,18 @@ module DEIS
|
|
160
160
|
def push
|
161
161
|
output = {"PUSH" => ""}
|
162
162
|
# make sure the profile is loaded, cd to the right place & run the converstion script.
|
163
|
-
conversion = run(".
|
164
|
-
output[" Gem conversion"] = if conversion ==
|
163
|
+
conversion = run(". #{self.remote_profile} && cd #{@deploy_to} && ./gemconversion | grep 'Converted and commited' | wc -l").to_i
|
164
|
+
output[" Gem conversion"] = if conversion == 1 then DEIS::Deploy::YES else DEIS::Deploy::NO end
|
165
165
|
# push the branch to deis
|
166
|
-
|
166
|
+
remote_ref = run("cd #{@deploy_to} && #{DEIS::Git.ref_cmd}")
|
167
|
+
deis = run("cd #{@deploy_to} && git push deis #{@branch}:#{remote_ref} | grep Error | wc -l") if conversion == 1
|
167
168
|
output[" Deis push"] = if deis.to_i == 0 then DEIS::Deploy::YES else DEIS::Deploy::NO end
|
168
169
|
print_table output
|
170
|
+
if conversion != 1
|
171
|
+
say "Gem conversion & commit failed.", :red
|
172
|
+
say "This could be due to environment settings being missing; please make sure ruby is installed and env set in .profile", :red
|
173
|
+
exit
|
174
|
+
end
|
169
175
|
end
|
170
176
|
|
171
177
|
def scale(vars)
|
data/lib/rdeis/git.rb
CHANGED
@@ -24,7 +24,11 @@ module DEIS
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def self.ref
|
27
|
-
|
27
|
+
`#{DEIS::Git.ref_cmd}`.strip
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.ref_cmd
|
31
|
+
"git rev-parse --verify HEAD 2>/dev/null"
|
28
32
|
end
|
29
33
|
|
30
34
|
def self.branch
|
@@ -35,8 +39,8 @@ module DEIS
|
|
35
39
|
"git init && git remote add origin #{remote} 2>&1 | grep 'fatal:' -o | wc -l"
|
36
40
|
end
|
37
41
|
|
38
|
-
def self.checkout_to_ref_cmd(ref)
|
39
|
-
"git fetch origin && git checkout -f #{ref} 2>&1 | grep 'error:' | wc -l"
|
42
|
+
def self.checkout_to_ref_cmd(ref, branch)
|
43
|
+
"git fetch origin && git checkout -f #{branch} && git checkout -f #{ref} 2>&1 | grep 'error:' | wc -l"
|
40
44
|
end
|
41
45
|
|
42
46
|
# find env based token
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module DEIS
|
2
|
+
class Upgrade < Base
|
3
|
+
include Thor::Shell
|
4
|
+
|
5
|
+
attr_accessor :proxy, :token, :ssh, :deploy_to
|
6
|
+
|
7
|
+
def initialize(options)
|
8
|
+
@repo = DEIS::Git.name
|
9
|
+
@verbose = options[:verbose]
|
10
|
+
@environment = options[:environment]
|
11
|
+
@proxy = if ! options["proxy"].nil? then options["proxy"] elsif ! ENV['RDEIS_PROXY'].nil? then ENV['RDEIS_PROXY'] else nil end
|
12
|
+
@ssh = SSH.new({:host => @proxy, :user => nil}) if ! @proxy.nil?
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
def all
|
18
|
+
# check for current version
|
19
|
+
previous_version = DEIS::Storage::BASE_PATH.gsub(DEIS::VERSION, DEIS::LAST_VERSION)
|
20
|
+
local_prev = previous_version.gsub("$HOME", ENV['HOME'])
|
21
|
+
current_version = DEIS::Storage::BASE_PATH
|
22
|
+
local_curr = current_version.gsub("$HOME", ENV['HOME'])
|
23
|
+
# local
|
24
|
+
# if no found, look for previous version
|
25
|
+
if ! File.directory?(local_curr) && File.directory?(local_prev)
|
26
|
+
say("Found previous version config files locally, migrating..", :green)
|
27
|
+
`mv -f #{local_prev} #{local_curr}`
|
28
|
+
# find local profile
|
29
|
+
content = File.open(self.local_profile, "r"){|f| f.read }
|
30
|
+
File.open(self.local_profile, "w"){|f| f.write(content.gsub(previous_version, current_version)) }
|
31
|
+
end
|
32
|
+
# remote
|
33
|
+
remote_current = run("ls -lart #{current_version} | wc -l").to_i
|
34
|
+
remote_previous = run("ls -lart #{previous_version} | wc -l").to_i
|
35
|
+
if remote_current == 0 && remote_previous > 1
|
36
|
+
say("Found previous remote version, migration..", :green)
|
37
|
+
run("mv -f #{previous_version} #{current_version}")
|
38
|
+
# replace profile
|
39
|
+
run("cat #{self.remote_profile} | sed -E 's##{previous_version.gsub("$", "\\\$")}##{current_version.gsub("$", "\\\$")}#' > #{self.remote_profile}.new && mv #{self.remote_profile} #{self.remote_profile}.bk && mv #{self.remote_profile}.new #{self.remote_profile}")
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
end
|
46
|
+
end
|
data/lib/rdeis/version.rb
CHANGED
data/lib/rdeis.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rdeis
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Charles Marshall
|
@@ -75,10 +75,11 @@ files:
|
|
75
75
|
- lib/rdeis/git.rb
|
76
76
|
- lib/rdeis/parse.rb
|
77
77
|
- lib/rdeis/storage.rb
|
78
|
+
- lib/rdeis/upgrade.rb
|
78
79
|
- lib/rdeis/version.rb
|
79
80
|
- lib/ssh.rb
|
80
81
|
- rdeis.gemspec
|
81
|
-
homepage: https://github.com/charlesmarshall/deis_deploy/tree/0.0.
|
82
|
+
homepage: https://github.com/charlesmarshall/deis_deploy/tree/0.0.8
|
82
83
|
licenses:
|
83
84
|
- MIT
|
84
85
|
metadata: {}
|