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