Module: Docker::Template
- Defined in:
- lib/docker/template.rb,
lib/docker/template/cli.rb,
lib/docker/template/auth.rb,
lib/docker/template/meta.rb,
lib/docker/template/repo.rb,
lib/docker/template/cache.rb,
lib/docker/template/error.rb,
lib/docker/template/logger.rb,
lib/docker/template/notify.rb,
lib/docker/template/parser.rb,
lib/docker/template/builder.rb,
lib/docker/template/cli/run.rb,
lib/docker/template/version.rb,
lib/docker/template/cli/list.rb,
lib/docker/template/cli/build.rb,
lib/docker/template/builder/normal.rb,
lib/docker/template/builder/rootfs.rb,
lib/docker/template/builder/scratch.rb
Defined Under Namespace
Modules: Auth, Cache, Error, Notify Classes: Builder, CLI, Logger, Meta, Parser, Repo
Constant Summary collapse
- VERSION =
"0.19.0"
Class Method Summary collapse
-
._require(what) ⇒ Object
–.
-
.gem_root ⇒ Object
–.
-
.get(name, data = {}) ⇒ Object
– Pull a
templatefrom thetemplate_rootto parse it’s data. -
.project? ⇒ Boolean
–.
-
.root ⇒ Object
–.
-
.template_root ⇒ Object
–.
-
.tmpdir ⇒ Object
–.
Class Method Details
._require(what) ⇒ Object
–
78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/docker/template.rb', line 78 def _require(what) require what if block_given? yield end rescue LoadError $stderr.puts "The gem '#{what}' wasn't found." $stderr.puts "You can install it with `gem install #{what}'" abort "Hope you install it so you can report back." end |
.gem_root ⇒ Object
–
44 45 46 47 48 49 50 |
# File 'lib/docker/template.rb', line 44 def gem_root @gem_root ||= begin Pathutil.new("../../").( __dir__ ) end end |
.get(name, data = {}) ⇒ Object
– Pull a template from the template_root to parse it’s data. TODO: Rename this to get_template! –
65 66 67 68 69 70 71 72 73 74 |
# File 'lib/docker/template.rb', line 65 def get(name, data = {}) data = ERB::Context.new(data) template = template_root.join("#{name}.erb").read unless name.is_a?(Pathutil) template = name.read if name.is_a?(Pathutil) template = ERB.new(template) return template.result( data._binding ) end |
.project? ⇒ Boolean
–
26 27 28 29 30 31 32 |
# File 'lib/docker/template.rb', line 26 def project? dir = root.join("docker") any = Builder.all.dup.keep_if(&:projects_allowed?) any = any.map(&:files).reduce(&:|).any? { |file| root.join(file).file? } return true if any && root.join(Meta.opts_file(:force => \ :project)).file? end |
.root ⇒ Object
–
36 37 38 39 40 |
# File 'lib/docker/template.rb', line 36 def root @root ||= begin Pathutil.new(Dir.pwd) end end |
.template_root ⇒ Object
–
54 55 56 57 58 |
# File 'lib/docker/template.rb', line 54 def template_root @template_root ||= begin gem_root.join("templates") end end |
.tmpdir ⇒ Object
–
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
# File 'lib/docker/template.rb', line 92 def tmpdir if ENV["DOCKER_TEMPLATE_TMPDIR"] # Don't destroy a user created directory. return Pathutil.new(ENV["DOCKER_TEMPLATE_TMPDIR"]).tap( &:mkdir_p ) else dir = root.join("tmp") if !dir.exist? # Make the directory and then throw it out at exit. dir.mkdir_p; ObjectSpace.define_finalizer(dir, proc do dir.rm_rf end) end dir end end |