module Coveralls::Configuration

def self.configuration

def self.configuration
  config = {
    :environment => self.relevant_env,
    :git => git
  }
  yml = self.yaml_config
  if yml
    config[:configuration] = yml
    config[:repo_token] = yml['repo_token'] || yml['repo_secret_token']
  end
  if ENV['COVERALLS_REPO_TOKEN']
    config[:repo_token] = ENV['COVERALLS_REPO_TOKEN']
  end
  if ENV['COVERALLS_PARALLEL'] && ENV['COVERALLS_PARALLEL'] != "false"
    config[:parallel] = true
  end
  if ENV['COVERALLS_FLAG_NAME']
    config[:flag_name] = ENV['COVERALLS_FLAG_NAME']
  end
  if ENV['TRAVIS']
    set_service_params_for_travis(config, yml ? yml['service_name'] : nil)
  elsif ENV['CIRCLECI']
    set_service_params_for_circleci(config)
  elsif ENV['SEMAPHORE']
    set_service_params_for_semaphore(config)
  elsif ENV['JENKINS_URL'] || ENV['JENKINS_HOME']
    set_service_params_for_jenkins(config)
  elsif ENV['APPVEYOR']
    set_service_params_for_appveyor(config)
  elsif ENV['TDDIUM']
    set_service_params_for_tddium(config)
  elsif ENV['GITLAB_CI']
    set_service_params_for_gitlab(config)
  elsif ENV['COVERALLS_RUN_LOCALLY'] || Coveralls.testing
    set_service_params_for_coveralls_local(config)
  end
  # standardized env vars
  set_standard_service_params_for_generic_ci(config)
  if service_name = ENV['COVERALLS_SERVICE_NAME']
    config[:service_name] = service_name
  end
  config
end