class Inspec::Resources::TimeZone
def identifier
def identifier @output["identifier"] end
def initialize
def initialize @output = {} os = inspec.os cmd = if os.windows? inspec.command("Get-TimeZone") else inspec.command("timedatectl status | grep -i 'Time zone'") end if cmd.exit_status != 0 raise Inspec::Exceptions::ResourceFailed, "Time Zone resource with error: #{cmd.stderr}" else if os.windows? splitted_output = cmd.stdout.strip.gsub(/\r/, "").split("\n").select { |out| (out.include? "Id") || (out.include? "DisplayName") || (out.include? "BaseUtcOffset") } @output["identifier"] = split_and_fetch_last(splitted_output[1]) @output["name"] = split_and_fetch_last(splitted_output[0]) @output["time_offset"] = split_and_fetch_last(splitted_output[2]) else splitted_output = cmd.stdout.split(":")[-1]&.strip&.gsub(/[(),^]*/, "")&.split(" ") || [] @output["identifier"] = splitted_output[0] @output["name"] = splitted_output[1] @output["time_offset"] = splitted_output[2] end end end
def name
def name @output["name"] end
def resource_id
def resource_id "timezone" end
def split_and_fetch_last(string_value)
def split_and_fetch_last(string_value) string_value.split(" :")[-1].strip end
def time_offset
def time_offset @output["time_offset"] end
def to_s
def to_s "Time Zone resource" end