Commit dbb97bb9 authored by Kev's avatar Kev

Add section_options to job line

parent 711729e1
...@@ -104,11 +104,12 @@ module Gitlab ...@@ -104,11 +104,12 @@ module Gitlab
action = scanner[1] action = scanner[1]
timestamp = scanner[2] timestamp = scanner[2]
section = scanner[3] section = scanner[3]
options = parse_section_options(scanner[4])
section_name = sanitize_section_name(section) section_name = sanitize_section_name(section)
if action == "start" if action == "start"
handle_section_start(scanner, section_name, timestamp) handle_section_start(scanner, section_name, timestamp, options)
elsif action == "end" elsif action == "end"
handle_section_end(scanner, section_name, timestamp) handle_section_end(scanner, section_name, timestamp)
else else
...@@ -116,11 +117,11 @@ module Gitlab ...@@ -116,11 +117,11 @@ module Gitlab
end end
end end
def handle_section_start(scanner, section, timestamp) def handle_section_start(scanner, section, timestamp, options)
# We make a new line for new section # We make a new line for new section
flush_current_line flush_current_line
@state.open_section(section, timestamp) @state.open_section(section, timestamp, options)
# we need to consume match after handling # we need to consume match after handling
# the open of section, as we want the section # the open of section, as we want the section
...@@ -157,6 +158,20 @@ module Gitlab ...@@ -157,6 +158,20 @@ module Gitlab
def sanitize_section_name(section) def sanitize_section_name(section)
section.to_s.downcase.gsub(/[^a-z0-9]/, '-') section.to_s.downcase.gsub(/[^a-z0-9]/, '-')
end end
def parse_section_options(raw_options)
return unless raw_options
# We need to remove the square brackets and split
# by comma to get a list of the options
options = raw_options[1...-1].split ","
# Now split each option by equals to separate
# each in the format [key, value]
options = options.map{ |option| option.split "=" }
options.to_h
end
end end
end end
end end
......
...@@ -32,7 +32,7 @@ module Gitlab ...@@ -32,7 +32,7 @@ module Gitlab
end end
attr_reader :offset, :sections, :segments, :current_segment, attr_reader :offset, :sections, :segments, :current_segment,
:section_header, :section_duration :section_header, :section_duration, :section_options
def initialize(offset:, style:, sections: []) def initialize(offset:, style:, sections: [])
@offset = offset @offset = offset
...@@ -68,6 +68,10 @@ module Gitlab ...@@ -68,6 +68,10 @@ module Gitlab
@sections << section @sections << section
end end
def set_section_options(options)
@section_options = options
end
def set_as_section_header def set_as_section_header
@section_header = true @section_header = true
end end
...@@ -90,6 +94,7 @@ module Gitlab ...@@ -90,6 +94,7 @@ module Gitlab
result[:section] = sections.last if sections.any? result[:section] = sections.last if sections.any?
result[:section_header] = true if @section_header result[:section_header] = true if @section_header
result[:section_duration] = @section_duration if @section_duration result[:section_duration] = @section_duration if @section_duration
result[:section_options] = @section_options if @section_options
end end
end end
end end
......
...@@ -26,10 +26,11 @@ module Gitlab ...@@ -26,10 +26,11 @@ module Gitlab
Base64.urlsafe_encode64(state.to_json) Base64.urlsafe_encode64(state.to_json)
end end
def open_section(section, timestamp) def open_section(section, timestamp, options)
@open_sections[section] = timestamp @open_sections[section] = timestamp
@current_line.add_section(section) @current_line.add_section(section)
@current_line.set_section_options(options)
@current_line.set_as_section_header @current_line.set_as_section_header
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment