#!/usr/bin/ruby.ruby2.5 
require 'timeout'

Timeout.timeout(5) do
  require 'uri'
  require 'net/https'
  require 'json'

  path         = ARGV[0] || '.travis.yml'
  http         = Net::HTTP.new('api.travis-ci.org', 443)
  http.use_ssl = true
  request      = Net::HTTP::Post.new('/lint')
  request.body = path == '-' ? $stdin.read : File.read(path)
  response     = http.request(request)

  response.value
  warnings = JSON.load(response.body)['lint']['warnings']
  warnings.reverse.each do |warning|
    prefix = " " << warning['key'].join('.') << ":" if warning['key'].any?
    puts "-#{prefix} #{warning['message']}"
  end

  exit 1 if warnings.any?
end
