module Debci
  module Validators
    module APTSource
      def invalid_extra_apt_sources(extra_apt_sources)
        invalid_extra_apt_sources = []
        Array(extra_apt_sources).each do |extra_apt_source|
          components = extra_apt_source.split
          if ["deb", "deb-src"].include?(components[0])
            url_arg = components[1] =~ /^\[.*?\]$/ ? components[2] : components[1]
          end
          uri = URI.parse(url_arg)
          raise URI::InvalidURIError unless uri.is_a?(URI::HTTP) && !uri.host.nil?
        rescue URI::InvalidURIError
          invalid_extra_apt_sources.push(extra_apt_source)
        end
        invalid_extra_apt_sources.join(", ")
      end
    end
  end
end