Class: Bosh::Gen::Command

Inherits:
Thor
  • Object
show all
Includes:
Thor::Actions
Defined in:
lib/bosh/gen/cli.rb

Instance Method Summary collapse

Instance Method Details

#extract_job(source_package_path) ⇒ Object



94
95
96
97
98
# File 'lib/bosh/gen/cli.rb', line 94

def extract_job(source_package_path)
  source_package_path = File.expand_path(source_package_path)
  require 'bosh/gen/generators/extract_job_generator'
  Bosh::Gen::Generators::ExtractJobGenerator.start([source_package_path])
end

#extract_pkg(source_package_path) ⇒ Object



103
104
105
106
107
# File 'lib/bosh/gen/cli.rb', line 103

def extract_pkg(source_package_path)
  source_package_path = File.expand_path(source_package_path)
  require 'bosh/gen/generators/extract_package_generator'
  Bosh::Gen::Generators::ExtractPackageGenerator.start([source_package_path])
end

#job(name) ⇒ Object



69
70
71
72
73
# File 'lib/bosh/gen/cli.rb', line 69

def job(name)
  dependencies = options[:dependencies] || []
  require 'bosh/gen/generators/job_generator'
  Bosh::Gen::Generators::JobGenerator.start([name, dependencies, 'simple'])
end

#manifest(name, release_path) ⇒ Object



119
120
121
122
123
124
125
126
127
# File 'lib/bosh/gen/cli.rb', line 119

def manifest(name, release_path)
  release_path = File.expand_path(release_path)
  ip_addresses = options["addresses"] || []
  job_names = options["jobs"] || []
  flags = { :force => options["force"] || false, :disk => options[:disk] }
  require 'bosh/gen/generators/deployment_manifest_generator'
  Bosh::Gen::Generators::DeploymentManifestGenerator.start(
    [name, release_path, ip_addresses, job_names, flags])
end

#micro(job_name = "micro") ⇒ Object



78
79
80
81
82
# File 'lib/bosh/gen/cli.rb', line 78

def micro(job_name = "micro")
  specific_jobs = options[:jobs] || []
  require 'bosh/gen/generators/micro_job_generator'
  Bosh::Gen::Generators::MicroJobGenerator.start([job_name, specific_jobs])
end

#new(path) ⇒ Object



16
17
18
19
# File 'lib/bosh/gen/cli.rb', line 16

def new(path)
  require 'bosh/gen/generators/new_release_generator'
  Bosh::Gen::Generators::NewReleaseGenerator.start([path])
end

#package(name) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/bosh/gen/cli.rb', line 30

def package(name)
  dependencies = options[:dependencies] || []
  if options[:apt]
    require 'bosh/gen/generators/package_apt_generator'
    Bosh::Gen::Generators::PackageAptGenerator.start([name, dependencies])
  else
    files        = options[:files] || []
    sources      = options[:src] || []
    require 'bosh/gen/generators/package_generator'
    Bosh::Gen::Generators::PackageGenerator.start(
      [name, dependencies, files, sources])
  end
end

#source(name, uri) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/bosh/gen/cli.rb', line 47

def source(name, uri)
  flags = { :blob => options[:blob] || false }
  dir = Dir.mktmpdir
  files = []
  if File.exist?(uri)
    files = [uri]
  else
    say "Downloading #{uri}..."
    FileUtils.chdir(dir) do
      `wget '#{uri}'`
      files = Dir['*'].map {|f| File.expand_path(f)}
    end
  end

  require 'bosh/gen/generators/package_source_generator'
  Bosh::Gen::Generators::PackageSourceGenerator.start(
    [name, files, flags])
end

#template(job_name, file_path) ⇒ Object



86
87
88
89
# File 'lib/bosh/gen/cli.rb', line 86

def template(job_name, file_path)
  require 'bosh/gen/generators/job_template_generator'
  Bosh::Gen::Generators::JobTemplateGenerator.start([job_name, file_path])
end