Custom names for services.
Services must be created as `[env/]custom_name` and be passed a `type=` parameter when created.master
parent
6c3024c92f
commit
1c80a80158
|
@ -54,6 +54,7 @@ commands.push "add", "Adds a service to an environment." do |args|
|
||||||
end
|
end
|
||||||
|
|
||||||
environment, service = Service.parse_id args[0]
|
environment, service = Service.parse_id args[0]
|
||||||
|
name = service
|
||||||
|
|
||||||
args.each_with_index do |arg, i|
|
args.each_with_index do |arg, i|
|
||||||
next if i == 0
|
next if i == 0
|
||||||
|
@ -67,7 +68,9 @@ commands.push "add", "Adds a service to an environment." do |args|
|
||||||
|
|
||||||
_, key, value = match
|
_, key, value = match
|
||||||
|
|
||||||
if key == "domain"
|
if key == "type"
|
||||||
|
service = value
|
||||||
|
elsif key == "domain"
|
||||||
domain = value
|
domain = value
|
||||||
elsif match = key.match /^port:(.*)/
|
elsif match = key.match /^port:(.*)/
|
||||||
ports[match[1]] = value.to_i
|
ports[match[1]] = value.to_i
|
||||||
|
@ -82,6 +85,10 @@ commands.push "add", "Adds a service to an environment." do |args|
|
||||||
service.domain = domain
|
service.domain = domain
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if name != service
|
||||||
|
service.name = name
|
||||||
|
end
|
||||||
|
|
||||||
service.consumes.each do |token|
|
service.consumes.each do |token|
|
||||||
provider = providers[token.token]?
|
provider = providers[token.token]?
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@ class Service
|
||||||
getter environment : Environment
|
getter environment : Environment
|
||||||
getter providers = ProvidersList.new
|
getter providers = ProvidersList.new
|
||||||
|
|
||||||
|
setter name : String?
|
||||||
property domain : String?
|
property domain : String?
|
||||||
getter ports = Hash(String, Int32).new
|
getter ports = Hash(String, Int32).new
|
||||||
|
|
||||||
|
@ -66,7 +67,11 @@ class Service
|
||||||
def initialize(specs : SpecParser)
|
def initialize(specs : SpecParser)
|
||||||
assignments = specs.assignments
|
assignments = specs.assignments
|
||||||
|
|
||||||
@reference = ServiceDefinition.get assignments["name"].as_s
|
# Complicated because of compat with when services had no dedicated
|
||||||
|
# name and their types were their name.
|
||||||
|
type = assignments["type"]?.try &.as_s
|
||||||
|
@name = (assignments["name"]?.try(&.as_s) || type).not_nil!
|
||||||
|
@reference = ServiceDefinition.get type || @name
|
||||||
|
|
||||||
@domain = assignments["domain"]?.try &.as_s
|
@domain = assignments["domain"]?.try &.as_s
|
||||||
|
|
||||||
|
@ -102,10 +107,14 @@ class Service
|
||||||
|
|
||||||
def to_spec
|
def to_spec
|
||||||
file = [
|
file = [
|
||||||
"name: #{@reference.name}",
|
"type: #{@reference.name}",
|
||||||
"environment: #{@environment.name}"
|
"environment: #{@environment.name}"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
unless @name.nil?
|
||||||
|
file << "name: #{@name}"
|
||||||
|
end
|
||||||
|
|
||||||
if @ports.size > 0
|
if @ports.size > 0
|
||||||
ports_list = @ports.map do |name, number|
|
ports_list = @ports.map do |name, number|
|
||||||
"#{name}=#{number}"
|
"#{name}=#{number}"
|
||||||
|
@ -144,10 +153,10 @@ class Service
|
||||||
|
|
||||||
# FIXME: At this point, macros would be both more readable and shorter.
|
# FIXME: At this point, macros would be both more readable and shorter.
|
||||||
def name
|
def name
|
||||||
@reference.name
|
@name || @reference.name
|
||||||
end
|
end
|
||||||
def type
|
def type
|
||||||
@reference.type
|
@reference.name
|
||||||
end
|
end
|
||||||
def command
|
def command
|
||||||
@reference.command
|
@reference.command
|
||||||
|
@ -359,6 +368,7 @@ class Service
|
||||||
|
|
||||||
def summary
|
def summary
|
||||||
"%-16s #{name.colorize(:white).to_s}\n" % "Name:" +
|
"%-16s #{name.colorize(:white).to_s}\n" % "Name:" +
|
||||||
|
"%-16s #{type.colorize(:white).to_s}\n" % "Type:" +
|
||||||
"%-16s #{environment.name.colorize(:white).to_s} (#{environment.type.to_s.downcase})\n" % "Environment:" +
|
"%-16s #{environment.name.colorize(:white).to_s} (#{environment.type.to_s.downcase})\n" % "Environment:" +
|
||||||
(
|
(
|
||||||
if provides.size > 0
|
if provides.size > 0
|
||||||
|
|
Loading…
Reference in New Issue