shaddox 0.0.19 → 0.0.20
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/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