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 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