Sha256: fc00941b99638caefca9a6d50c12a5cd89fc054e9d056a1ed1dba403f03618d2

Contents?: true

Size: 1.28 KB

Versions: 4

Compression:

Stored size: 1.28 KB

Contents

require 'active_support/all'
require 'settingslogic'
require 'AWS'
require 'aws/s3'
require 'net/ssh'
require 'highline'

require 'standup/core_ext'
require 'standup/settings'
require 'standup/ec2'
require 'standup/remoting'
require 'standup/scripts/base'
require 'standup/node'

module Standup
  module Scripts; end
  
  def self.nodes
    Settings.nodes.keys.map{|name| Node.new name}
  end
  
  def self.gem_scripts_path
    File.expand_path('../../scripts',  __FILE__)
  end
  
  def self.local_scripts_path
    File.expand_path('config/standup') rescue nil
  end
  
  def self.scripts
    unless class_variable_defined? :@@scripts
      @@scripts = {}
      loaded = Set.new
      [local_scripts_path, gem_scripts_path].each do |dir|
        Dir.foreach dir do |name|
          next unless File.file? "#{dir}/#{name}"
          next unless name =~ /\.rb$/
          next if loaded.include? name
          load "#{dir}/#{name}", true
          loaded << name
        end if dir && File.exists?(dir)
      end
    end
    @@scripts
  end
  
  def self.script &block
    name = block.__file__.match(/([^\/]*)\.rb$/)[1]
    script_class = Class.new(Standup::Scripts::Base, &block)
    script_class.name = name
    Standup::Scripts.const_set name.camelize, script_class
    scripts[name] = script_class
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
standup-0.3.3 lib/standup.rb
standup-0.3.2 lib/standup.rb
standup-0.3.1 lib/standup.rb
standup-0.3.0 lib/standup.rb