Module: Divvy

Defined in:
lib/divvy.rb,
lib/divvy/server.rb,
lib/divvy/package.rb,
lib/divvy/verifiers.rb,
lib/divvy/plugins/apt.rb,
lib/divvy/plugins/gem.rb,
lib/divvy/provisioner.rb,
lib/divvy/verification.rb,
lib/divvy/plugins/rails.rb,
lib/divvy/package_runner.rb,
lib/divvy/plugins/source.rb,
lib/divvy/plugins/file_utilities.rb,
lib/divvy/duplicate_package_error.rb

Overview

class Object

include Divvy::Script

end

Defined Under Namespace

Modules: Plugins, Verifiers Classes: DuplicatePackageError, NonZeroExitCode, Package, PackageRunner, Provisioner, Server, Verification, VerificationFailed

Class Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Class Attribute Details

.initializedObject

Internal variables



23
24
25
# File 'lib/divvy.rb', line 23

def initialized
  @initialized
end

.packagesObject

Internal variables



23
24
25
# File 'lib/divvy.rb', line 23

def packages
  @packages
end

.testObject

user configurable



12
13
14
# File 'lib/divvy.rb', line 12

def test
  @test
end

.verboseObject

user configurable



12
13
14
# File 'lib/divvy.rb', line 12

def verbose
  @verbose
end

Class Method Details

.initObject



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/divvy.rb', line 32

def self.init
  # exit if divvy is already initialized
  return if self.initialized
  
  # variable init
  self.packages = {}
  
  # # set defaults
  # self.log_buffer_size ||= LOG_BUFFER_SIZE_DEFAULT
  # self.port ||= DRB_PORT_DEFAULT
  # self.allow ||= DRB_ALLOW_DEFAULT
  # self.log_level ||= LOG_LEVEL_DEFAULT
  
  # # log level
  # log_level_map = {:debug => Logger::DEBUG,
  #                  :info => Logger::INFO,
  #                  :warn => Logger::WARN,
  #                  :error => Logger::ERROR,
  #                  :fatal => Logger::FATAL}
  # LOG.level = log_level_map[self.log_level]
  
  # flag as initialized
  self.initialized = true
  
  # not yet running
  # self.running = false
end

.package(name, options = {}, &block) ⇒ Object



68
69
70
71
72
# File 'lib/divvy.rb', line 68

def self.package(name, options = {}, &block)
  package = Package.new(name, options, &block)
  raise DuplicatePackageError.new(package.name) if packages.key?(package.name)
  packages[package.name] = package
end

.provision(host, package, server_options) ⇒ Object



74
75
76
77
# File 'lib/divvy.rb', line 74

def self.provision(host, package, server_options)
  provision = Provisioner.new(host, package, server_options)
  provision.run
end

.register_plugin(plugin) ⇒ Object



64
65
66
# File 'lib/divvy.rb', line 64

def self.register_plugin(plugin)
  Divvy::PackageRunner.class_eval { include plugin }
end

.register_verifier(verifier) ⇒ Object



60
61
62
# File 'lib/divvy.rb', line 60

def self.register_verifier(verifier)
  Divvy::Verification.class_eval { include verifier }
end

.run(script, filename = '__SCRIPT__') ⇒ Object



85
86
87
88
# File 'lib/divvy.rb', line 85

def self.run(script, filename = '__SCRIPT__')
  Divvy.init
  Object.new.instance_eval(script, filename)
end

.say(message) ⇒ Object



28
29
30
# File 'lib/divvy.rb', line 28

def self.say(message)
  puts message
end

Instance Method Details

#get_package(key) ⇒ Object



79
80
81
82
83
# File 'lib/divvy.rb', line 79

def get_package(key)
  package = PACKAGES[key]
  raise "Package #{key} not found!" unless package
  package
end