Class: Awestruct::CLI::Invoker

Inherits:
Object
  • Object
show all
Defined in:
lib/awestruct/cli/invoker.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*options) ⇒ Invoker

Returns a new instance of Invoker.



18
19
20
21
22
23
24
25
26
27
# File 'lib/awestruct/cli/invoker.rb', line 18

def initialize(*options)
  options = options.flatten
  if ( ( ! options.empty? ) && ( options.first === Awestruct::CLI::Options ) )
    @options = options.first
  else
    @options = Awestruct::CLI::Options.parse! options
  end
  @threads = []
  @profile = nil
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



15
16
17
# File 'lib/awestruct/cli/invoker.rb', line 15

def config
  @config
end

#optionsObject (readonly)

Returns the value of attribute options.



13
14
15
# File 'lib/awestruct/cli/invoker.rb', line 13

def options
  @options
end

#profileObject (readonly)

Returns the value of attribute profile.



16
17
18
# File 'lib/awestruct/cli/invoker.rb', line 16

def profile
  @profile
end

Instance Method Details

#invoke!Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/awestruct/cli/invoker.rb', line 29

def invoke!
  load_profile() unless ( options.init )

  setup_config()

  invoke_init()      if ( options.init )
  invoke_script()    if ( options.script )
  invoke_force()     if ( options.force )
  invoke_generate()  if ( options.generate )
  invoke_deploy()    if ( options.deploy )
  invoke_server()    if ( options.server )
  invoke_auto()      if ( options.auto )

  wait_for_completion()
end

#invoke_autoObject



86
87
88
# File 'lib/awestruct/cli/invoker.rb', line 86

def invoke_auto()
  run_in_thread( Awestruct::CLI::Auto.new( config.dir ) )
end

#invoke_deployObject



83
84
# File 'lib/awestruct/cli/invoker.rb', line 83

def invoke_deploy()
end

#invoke_forceObject



75
76
77
# File 'lib/awestruct/cli/invoker.rb', line 75

def invoke_force()
  FileUtils.rm_rf( config.output_dir )
end

#invoke_generateObject



79
80
81
# File 'lib/awestruct/cli/invoker.rb', line 79

def invoke_generate()
  Awestruct::CLI::Generate.new( config, profile, options.base_url, 'http://localhost:4242', options.force ).run
end

#invoke_initObject



69
70
# File 'lib/awestruct/cli/invoker.rb', line 69

def invoke_init()
end

#invoke_scriptObject



72
73
# File 'lib/awestruct/cli/invoker.rb', line 72

def invoke_script()
end

#invoke_serverObject



90
91
92
# File 'lib/awestruct/cli/invoker.rb', line 90

def invoke_server()
  run_in_thread( Awestruct::CLI::Server.new( './_site', options.bind_addr, options.port ) )
end

#load_profileObject



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/awestruct/cli/invoker.rb', line 45

def load_profile()
  site_yaml_file = File.join( Dir.pwd, '_config', 'site.yml' )
  if ( File.exist?( site_yaml_file ) )
    site_yaml      = YAML.load( File.read( site_yaml_file ) )
    if site_yaml
      profiles_data  = site_yaml['profiles'] || {}
      @profile = if profiles_data.nil?
        nil
      else
        if options.profile
          profiles_data[options.profile]
        else
          # if no profile given, pick the first with deploy config
          options.profile, profile_data = profiles_data.select { |k,v| v && v['deploy'] }.first
        end
      end
    end
  end
end

#setup_configObject



65
66
67
# File 'lib/awestruct/cli/invoker.rb', line 65

def setup_config()
  @config = Awestruct::Config.new( Dir.pwd )
end