shaddox 0.0.19 → 0.0.20
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Doxfile +2 -1
- data/bin/shaddox +2 -2
- data/lib/shaddox/config.rb +1 -0
- data/lib/shaddox/repo.rb +1 -0
- data/lib/shaddox/shadow.rb +20 -9
- data/lib/shaddox/shadow_script.rb +6 -3
- data/lib/shaddox/target.rb +4 -4
- data/lib/shaddox/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 813bb3d6c4b67ca709df3d036a384bf199aefa52
|
4
|
+
data.tar.gz: a617115881d1381e3372ef9a89ea1d7121c1a4a6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a4a489561e4d86603b029847ef8d7e521d7aeeb14f85bb8a82b863ccb1edadec3586f3d0171204fcb6507b8be879a4a00f2c5041cbd7462b2a62e7d75291637c
|
7
|
+
data.tar.gz: a165f5393a606968f1ebd1538182100678d2865a3aca41483971029a8861dbe9f917582c7ccc517539cc7938f6a1d076b13314938d6cacc1891ae91d120160ab
|
data/Doxfile
CHANGED
data/bin/shaddox
CHANGED
@@ -12,8 +12,8 @@ OptionParser.new do |opts|
|
|
12
12
|
|
13
13
|
opts.banner = "Usage: shaddox [task] [target] [options]"
|
14
14
|
|
15
|
-
opts.on("
|
16
|
-
options[:
|
15
|
+
opts.on("--debug", "Run verbosely") do |v|
|
16
|
+
options[:debug] = v
|
17
17
|
end
|
18
18
|
|
19
19
|
opts.on("--force", "Override lock on target") do |b|
|
data/lib/shaddox/config.rb
CHANGED
@@ -39,6 +39,7 @@ module Shaddox
|
|
39
39
|
begin
|
40
40
|
script_opts = {}
|
41
41
|
script_opts[:installer] = target.installer if target.respond_to? :installer
|
42
|
+
script_opts[:debug] = opts[:debug] if opts[:debug]
|
42
43
|
script = ShadowScript.new(self, task_key, script_opts)
|
43
44
|
target.deploy(script, opts)
|
44
45
|
info "Provisioning on :#{target_key} complete.".green
|
data/lib/shaddox/repo.rb
CHANGED
data/lib/shaddox/shadow.rb
CHANGED
@@ -10,7 +10,7 @@ module Shaddox
|
|
10
10
|
require 'fileutils'
|
11
11
|
#include FileUtils
|
12
12
|
def initialize(options, &block)
|
13
|
-
@
|
13
|
+
@debug = options[:debug] || false
|
14
14
|
@installer = options[:installer]
|
15
15
|
@tmppath = options[:tmppath] || '/tmp/shaddox/'
|
16
16
|
@required = true
|
@@ -26,8 +26,12 @@ module Shaddox
|
|
26
26
|
def sh(command, args = nil)
|
27
27
|
line = "#{command}"
|
28
28
|
line += " #{args.join(" ")}" if args
|
29
|
-
|
30
|
-
|
29
|
+
exec(line, :verbose => true)
|
30
|
+
end
|
31
|
+
|
32
|
+
def exec(command, opts = {:verbose => false})
|
33
|
+
info "Running '#{command}' in '#{Dir.pwd}'", 1 if opts[:verbose] or @debug
|
34
|
+
system(command)
|
31
35
|
raise "#{line} failed" unless $? == 0 or !@required
|
32
36
|
end
|
33
37
|
|
@@ -94,20 +98,27 @@ module Shaddox
|
|
94
98
|
|
95
99
|
# Make a new release dir
|
96
100
|
release_path = "./releases/#{release}"
|
97
|
-
mkdir(release_path)
|
98
101
|
|
99
102
|
case repo.vcs
|
100
103
|
when :git
|
101
104
|
# Clone/update repo in vcs:
|
102
105
|
if exists_d('vcs')
|
103
106
|
cd 'vcs' do
|
104
|
-
|
107
|
+
exec "git fetch #{repo.url} #{repo.branch}:#{repo.branch} --force"
|
105
108
|
end
|
106
109
|
else
|
107
|
-
|
110
|
+
exec "git clone #{repo.url} vcs --bare"
|
108
111
|
end
|
109
|
-
|
112
|
+
exec "git clone ./vcs #{release_path} --recursive --branch #{repo.branch}"
|
110
113
|
end
|
114
|
+
|
115
|
+
# Link shared paths
|
116
|
+
repo.shared.each do |shared_path|
|
117
|
+
ln_s "./shared/#{shared_path}", "#{release_path}/#{shared_path}"
|
118
|
+
end
|
119
|
+
|
120
|
+
# Link ./current to the latest release
|
121
|
+
ln_s './current', release_path
|
111
122
|
end
|
112
123
|
end
|
113
124
|
|
@@ -131,9 +142,9 @@ module Shaddox
|
|
131
142
|
unless package_installed.call()
|
132
143
|
case @installer
|
133
144
|
when :apt
|
134
|
-
|
145
|
+
exec "sudo apt-get install -y #{package}"
|
135
146
|
when :brew
|
136
|
-
|
147
|
+
exec "brew install #{package}"
|
137
148
|
end
|
138
149
|
end
|
139
150
|
raise "#{package} could not be installed." unless package_installed.call()
|
@@ -4,15 +4,18 @@ module Shaddox
|
|
4
4
|
def initialize(config, task_key, opts = {})
|
5
5
|
# Initialize properties
|
6
6
|
@installer = opts[:installer]
|
7
|
+
|
7
8
|
@config = config
|
8
9
|
@cast_tasks = []
|
9
10
|
|
10
11
|
# Generate script
|
11
|
-
params =
|
12
|
-
params
|
12
|
+
params = []
|
13
|
+
params += ":installer => :#{@installer}" if @installer
|
14
|
+
params += ":debug => :#{opts[:debug]}" if opts[:debug]
|
15
|
+
|
13
16
|
@script = %Q{
|
14
17
|
require 'shaddox'
|
15
|
-
Shaddox::Shadow.new(#{params}) do
|
18
|
+
Shaddox::Shadow.new({#{params.join(',')}}) do
|
16
19
|
## begin generated shadow ##
|
17
20
|
}
|
18
21
|
add_repos
|
data/lib/shaddox/target.rb
CHANGED
@@ -35,12 +35,12 @@ module Shaddox
|
|
35
35
|
shaddox_installed = lambda { exec 'gem list shaddox -i >/dev/null' }
|
36
36
|
if shaddox_installed.call()
|
37
37
|
info "Updating shaddox...", 1
|
38
|
-
updated = exec "gem update shaddox", :
|
38
|
+
updated = exec "gem update shaddox", :verbose => false
|
39
39
|
updated = exec "sudo gem update shaddox" unless updated
|
40
40
|
warn "Shaddox could not be automatically updated. Please update it manually with 'gem update shaddox'.", 1 unless updated
|
41
41
|
else
|
42
42
|
info "Installing shaddox...", 1
|
43
|
-
installed = exec "gem install shaddox", :
|
43
|
+
installed = exec "gem install shaddox", :verbose => false
|
44
44
|
installed = exec "sudo gem install shaddox" unless installed
|
45
45
|
warn "Shaddox could not be automatically installed. Please update it manually with 'gem update shaddox'.", 1 unless installed
|
46
46
|
end
|
@@ -120,7 +120,7 @@ module Shaddox
|
|
120
120
|
super(&block)
|
121
121
|
end
|
122
122
|
end
|
123
|
-
def exec(command, opts = {})
|
123
|
+
def exec(command, opts = {:verbose => true})
|
124
124
|
require 'highline/import'
|
125
125
|
exit_code = nil
|
126
126
|
@ssh.open_channel do |channel|
|
@@ -134,7 +134,7 @@ module Shaddox
|
|
134
134
|
pass = ask("") { |q| q.echo = false }
|
135
135
|
channel.send_data "#{pass}\n"
|
136
136
|
else
|
137
|
-
$stdout.print data
|
137
|
+
$stdout.print data if opts[:verbose]
|
138
138
|
end
|
139
139
|
end
|
140
140
|
channel.on_request('exit-status') do |ch, data|
|
data/lib/shaddox/version.rb
CHANGED