bosh-gen 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog.md +6 -0
- data/lib/bosh/gen/cli.rb +7 -0
- data/lib/bosh/gen/generators/extract_job_generator.rb +59 -0
- data/lib/bosh/gen/generators/job_generator.rb +0 -4
- data/lib/bosh/gen/version.rb +1 -1
- metadata +4 -5
- data/lib/bosh/gen/generators/job_generator/templates/jobs/%job_name%/TODO.md.tt +0 -4
- data/lib/bosh/gen/generators/job_generator/templates/jobs/%job_name%_rubyrack/TODO.md.tt +0 -0
data/ChangeLog.md
CHANGED
data/lib/bosh/gen/cli.rb
CHANGED
|
@@ -68,6 +68,13 @@ module Bosh
|
|
|
68
68
|
require 'bosh/gen/generators/job_template_generator'
|
|
69
69
|
Bosh::Gen::Generators::JobTemplateGenerator.start([job_name, file_path])
|
|
70
70
|
end
|
|
71
|
+
|
|
72
|
+
desc "extract SOURCE_RELEASE_PATH SOURCE_JOB_NAME [JOB_NAME]", "Extracts a job from another release and all its dependent packages and source"
|
|
73
|
+
def extract(source_release_path, source_job_name, target_job_name=nil)
|
|
74
|
+
target_job_name ||= source_job_name
|
|
75
|
+
require 'bosh/gen/generators/extract_job_generator'
|
|
76
|
+
Bosh::Gen::Generators::ExtractJobGenerator.start([source_release_path, source_job_name, target_job_name])
|
|
77
|
+
end
|
|
71
78
|
|
|
72
79
|
desc "manifest NAME PATH UUID", "Creates a deployment manifest based on the release located at PATH"
|
|
73
80
|
method_option :force, :type => :boolean, :desc => "Force override existing target manifest file"
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
require 'yaml'
|
|
2
|
+
require 'thor/group'
|
|
3
|
+
|
|
4
|
+
module Bosh::Gen
|
|
5
|
+
module Generators
|
|
6
|
+
class ExtractJobGenerator < Thor::Group
|
|
7
|
+
include Thor::Actions
|
|
8
|
+
|
|
9
|
+
argument :source_release_path
|
|
10
|
+
argument :source_job_name
|
|
11
|
+
argument :job_name
|
|
12
|
+
|
|
13
|
+
def check_root_is_release
|
|
14
|
+
unless File.exist?("jobs") && File.exist?("packages")
|
|
15
|
+
raise Thor::Error.new("run inside a BOSH release project")
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def using_source_release_for_templates
|
|
20
|
+
source_paths << File.join(source_release_path)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def copy_job_dir
|
|
24
|
+
directory "jobs/#{source_job_name}", "jobs/#{job_name}"
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def detect_dependent_packages
|
|
28
|
+
@packages = YAML.load_file(job_dir("spec"))["packages"]
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def copy_dependent_packages
|
|
32
|
+
@packages.each {|package| directory "packages/#{package}"}
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def copy_dependent_sources
|
|
36
|
+
@blobs = false
|
|
37
|
+
@packages.each do |package|
|
|
38
|
+
directory "src/#{package}" if File.exist?(File.join(source_release_path, "src", package))
|
|
39
|
+
if File.exist?(File.join(source_release_path, "blobs", package))
|
|
40
|
+
directory "blobs/#{package}"
|
|
41
|
+
@blobs = true
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def readme
|
|
47
|
+
if @blobs
|
|
48
|
+
say_status "readme", "Upload blobs with 'bosh upload blobs'"
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
private
|
|
53
|
+
def job_dir(path="")
|
|
54
|
+
File.join("jobs", job_name, path)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
data/lib/bosh/gen/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bosh-gen
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.6.0
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -127,12 +127,11 @@ files:
|
|
|
127
127
|
- lib/bosh/gen.rb
|
|
128
128
|
- lib/bosh/gen/cli.rb
|
|
129
129
|
- lib/bosh/gen/generators/deployment_manifest_generator.rb
|
|
130
|
+
- lib/bosh/gen/generators/extract_job_generator.rb
|
|
130
131
|
- lib/bosh/gen/generators/job_generator.rb
|
|
131
132
|
- lib/bosh/gen/generators/job_generator/templates/.gitkeep
|
|
132
|
-
- lib/bosh/gen/generators/job_generator/templates/jobs/%job_name%/TODO.md.tt
|
|
133
133
|
- lib/bosh/gen/generators/job_generator/templates/jobs/%job_name%/monit.tt
|
|
134
134
|
- lib/bosh/gen/generators/job_generator/templates/jobs/%job_name%/templates/%job_name%_ctl.tt
|
|
135
|
-
- lib/bosh/gen/generators/job_generator/templates/jobs/%job_name%_rubyrack/TODO.md.tt
|
|
136
135
|
- lib/bosh/gen/generators/job_generator/templates/jobs/%job_name%_rubyrack/monit.tt
|
|
137
136
|
- lib/bosh/gen/generators/job_generator/templates/jobs/%job_name%_rubyrack/templates/%job_name%_ctl.tt
|
|
138
137
|
- lib/bosh/gen/generators/job_template_generator.rb
|
|
@@ -172,7 +171,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
172
171
|
version: '0'
|
|
173
172
|
segments:
|
|
174
173
|
- 0
|
|
175
|
-
hash:
|
|
174
|
+
hash: 3145463727882526892
|
|
176
175
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
177
176
|
none: false
|
|
178
177
|
requirements:
|
|
@@ -181,7 +180,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
181
180
|
version: '0'
|
|
182
181
|
segments:
|
|
183
182
|
- 0
|
|
184
|
-
hash:
|
|
183
|
+
hash: 3145463727882526892
|
|
185
184
|
requirements: []
|
|
186
185
|
rubyforge_project:
|
|
187
186
|
rubygems_version: 1.8.23
|
|
File without changes
|