lib/sprinkle/verify.rb in sprinkle-0.7.6.2 vs lib/sprinkle/verify.rb in sprinkle-0.7.7
- old
+ new
@@ -60,11 +60,11 @@
# end
class Verify
include Sprinkle::Attributes
include Sprinkle::Package::Rendering::Helpers
include Sprinkle::Sudo
- attr_accessor :package, :description, :commands, :options #:nodoc:
+ attr_accessor :package, :description, :options #:nodoc:
delegate :opts, :to => :package
delegate :args, :to => :package
delegate :version, :to => :package
delegate :description, :to => :package
@@ -85,14 +85,25 @@
@description = description
@commands = []
@options ||= {}
@options[:padding] = 4
@delivery = nil
-
- self.instance_eval(&block)
+ @block = block
end
+ def commands
+ prepare
+ @commands
+ end
+
+ def prepare
+ return if @prepared
+ @commands = []
+ self.instance_eval(&@block)
+ @prepared = true
+ end
+
def runner(*cmds)
ActiveSupport::Deprecation.warn
"runner inside verify is depreciated and will removed in the future\n" +
"use runs_without_error instead."
runs_without_error(*cmds)
@@ -107,10 +118,13 @@
if logger.debug?
logger.debug "#{@package.name}#{description} verification sequence: #{@commands.join('; ')} for roles: #{roles}\n"
end
- unless Sprinkle::OPTIONS[:testing]
+ if Sprinkle::OPTIONS[:testing]
+ # always fail when testing to force an install
+ raise Sprinkle::VerificationFailed.new(@package, description) if pre
+ else
logger.debug "#{" " * @options[:padding]}--> Verifying #{description}..."
unless @delivery.verify(self, roles)
# Verification failed, halt sprinkling gracefully.
raise Sprinkle::VerificationFailed.new(@package, description)