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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cd2053bd4b96c878ec2a985ec69c070000daf70b
4
- data.tar.gz: ad6830dd32303cc0abdc47a1334db3cd587057d8
3
+ metadata.gz: 813bb3d6c4b67ca709df3d036a384bf199aefa52
4
+ data.tar.gz: a617115881d1381e3372ef9a89ea1d7121c1a4a6
5
5
  SHA512:
6
- metadata.gz: d892245b6b72a1d1b786719e880e1f082dda64a63894409bd992b854df29b9e2db79fd05a5c9a29c6fb157903d0892fe40c2c078561532fda304c423f0350c18
7
- data.tar.gz: ba99b2f0f588111af0387c46f57914539983f2b1e05e9152a741214fb523ac628fd71e3974436c4289861e56cfa11114c900b2f02a366f2de8405f3f67786f82
6
+ metadata.gz: a4a489561e4d86603b029847ef8d7e521d7aeeb14f85bb8a82b863ccb1edadec3586f3d0171204fcb6507b8be879a4a00f2c5041cbd7462b2a62e7d75291637c
7
+ data.tar.gz: a165f5393a606968f1ebd1538182100678d2865a3aca41483971029a8861dbe9f917582c7ccc517539cc7938f6a1d076b13314938d6cacc1891ae91d120160ab
data/Doxfile CHANGED
@@ -9,7 +9,8 @@ server :vagrant, {
9
9
  }
10
10
 
11
11
  repo :profile, {
12
- :url => "https://github.com/joshglendenning/profile.git"
12
+ :url => "https://github.com/joshglendenning/profile.git",
13
+ :shared => 'tmp'
13
14
  }
14
15
 
15
16
  task :foo do
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("-v", "--[no]-verbose", "Run verbosely") do |v|
16
- options[:verbose] = v
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|
@@ -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
@@ -6,6 +6,7 @@ module Shaddox
6
6
  @url = info[:url]
7
7
  @branch = info[:branch] || 'master'
8
8
  @vcs = info[:vcs] || :git
9
+ @shared = [info[:shared]].flatten || []
9
10
  end
10
11
 
11
12
  def to_source
@@ -10,7 +10,7 @@ module Shaddox
10
10
  require 'fileutils'
11
11
  #include FileUtils
12
12
  def initialize(options, &block)
13
- @verbose = options[:verbose] || true
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
- info "Running '#{line}' in '#{Dir.pwd}'", 1 if @verbose
30
- system(command, *args)
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
- sh "git fetch #{repo.url} #{repo.branch}:#{repo.branch} --force"
107
+ exec "git fetch #{repo.url} #{repo.branch}:#{repo.branch} --force"
105
108
  end
106
109
  else
107
- sh "git clone #{repo.url} vcs --bare"
110
+ exec "git clone #{repo.url} vcs --bare"
108
111
  end
109
- sh "git clone ./vcs #{release_path} --recursive --branch #{repo.branch}"
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
- sh "sudo apt-get install -y #{package}"
145
+ exec "sudo apt-get install -y #{package}"
135
146
  when :brew
136
- sh "brew install #{package}"
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 = "{:installer => :#{@installer}}" if @installer
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
@@ -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", :quiet => true
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", :quiet => true
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 unless opts[:quiet]
137
+ $stdout.print data if opts[:verbose]
138
138
  end
139
139
  end
140
140
  channel.on_request('exit-status') do |ch, data|
@@ -1,3 +1,3 @@
1
1
  module Shaddox
2
- VERSION = "0.0.19"
2
+ VERSION = "0.0.20"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shaddox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.19
4
+ version: 0.0.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - joshglendenning