class Bosh::Gen::Generators::ExtractJobGenerator

Public Instance Methods

check_job_path_is_a_job() click to toggle source
# File lib/bosh/gen/generators/extract_job_generator.rb, line 23
def check_job_path_is_a_job
  parent_dir = File.basename(File.dirname(source_job_path))
  unless parent_dir == "jobs"
    raise Thor::Error.new("source jobs path is not a BOSH job")
  end
end
check_job_path_is_valid() click to toggle source
# File lib/bosh/gen/generators/extract_job_generator.rb, line 17
def check_job_path_is_valid
  unless File.exist?(source_job_path)
    raise Thor::Error.new("source job path does not exist")
  end
end
check_job_path_within_release() click to toggle source
# File lib/bosh/gen/generators/extract_job_generator.rb, line 30
def check_job_path_within_release
  FileUtils.chdir(source_release_path) do
    unless File.exist?("jobs") && File.exist?("packages")
      raise Thor::Error.new("source job path is not within a BOSH release project")
    end
  end
end
check_root_is_release() click to toggle source
# File lib/bosh/gen/generators/extract_job_generator.rb, line 11
def check_root_is_release
  unless File.exist?("jobs") && File.exist?("packages")
    raise Thor::Error.new("run inside a BOSH release project")
  end
end
copy_dependent_packages() click to toggle source
# File lib/bosh/gen/generators/extract_job_generator.rb, line 50
def copy_dependent_packages
  @packages.each {|package| directory "packages/#{package}"}
end
copy_job_dir() click to toggle source
# File lib/bosh/gen/generators/extract_job_generator.rb, line 42
def copy_job_dir
  directory "jobs/#{source_job_name}", "jobs/#{target_job_name}"
end
copy_package_spec_files() click to toggle source
# File lib/bosh/gen/generators/extract_job_generator.rb, line 54
def copy_package_spec_files
  @blobs = false
  @packages.each do |package|
    spec = source_file("packages", package, "spec")
    files = YAML.load_file(spec)["files"]
    
    files.each do |relative_file|
      if File.exist?(source_file("src", relative_file))
        copy_file "src/#{relative_file}"
      elsif File.exist?(source_file("blobs", relative_file))
        copy_file "blobs/#{relative_file}"
        @blobs = true
      end
    end
  end
end
detect_dependent_packages() click to toggle source
# File lib/bosh/gen/generators/extract_job_generator.rb, line 46
def detect_dependent_packages
  @packages = YAML.load_file(job_dir("spec"))["packages"]
end
readme() click to toggle source
# File lib/bosh/gen/generators/extract_job_generator.rb, line 71
def readme
  if @blobs
    say_status "readme", "Upload blobs with 'bosh upload blobs'"
  end
end
using_source_release_for_templates() click to toggle source
# File lib/bosh/gen/generators/extract_job_generator.rb, line 38
def using_source_release_for_templates
  source_paths << File.join(source_release_path)
end

Private Instance Methods

job_dir(path="") click to toggle source
# File lib/bosh/gen/generators/extract_job_generator.rb, line 90
def job_dir(path="")
  File.join("jobs", target_job_name, path)
end
source_file(*path) click to toggle source
# File lib/bosh/gen/generators/extract_job_generator.rb, line 94
def source_file(*path)
  File.join(source_release_path, *path)
end
source_job_name() click to toggle source
# File lib/bosh/gen/generators/extract_job_generator.rb, line 82
def source_job_name
  File.basename(source_job_path)
end
source_release_path() click to toggle source
# File lib/bosh/gen/generators/extract_job_generator.rb, line 78
def source_release_path
  File.expand_path(File.join(source_job_path, "..", ".."))
end
target_job_name() click to toggle source
# File lib/bosh/gen/generators/extract_job_generator.rb, line 86
def target_job_name
  source_job_name
end