# -*- coding: utf-8 -*-
# vim: ft=ruby

# Global source defined as https://rubygems.org
source 'https://rubygems.org'

# Attempt to fingerprint OS from /etc/os-release where available
if File.file?("/etc/os-release")

  os_family = ''
  os_version = ''
  os_version_full = ''

  # Strip necessary granularity from os-release
  File.open("/etc/os-release").grep(/(^ID=(.*)$|^VERSION="(.*)"$|^VERSION_ID="(.*)")/) do |line|

      # OS family (Debian/CentOS/Ubuntu)
      if ( line =~ /^ID=\S/ )
        os_family = line.split('=')[1]
        puts "IDENTIFIED os_family = " + os_family
      end

      # Major revision
      if ( line =~ /^VERSION_ID="(.*)"$/ )
        os_version = line.split('=')[1].tr('"','')
        puts "IDENTIFIED os_version = " + os_version
      end

      # Vanity name
      if ( line =~ /^VERSION="(.*)"$/ )
        os_version_full = line.split('=')[1]
        puts "IDENTIFIED os_version_full = " + os_version_full
      end

  end

  # Pinning is broken into os_family and then os_version
  # to try and avoid conflict.
  case os_family

    when /debian/
      # os_family: Debian os_version dependent pins
      case os_version
        when /7/
          puts "busser-serverspec is no longer natively supported on: " + os_version_full
        when /8/
          gem 'net-ssh', '~> 4.2.0'
        else
          puts "Your distribution is either too old, or supported without pins: " + os_version_full
      end

    when /centos/
      # os_family: centos os_version dependent pins
      print "Switching on " + os_version
      case os_version
        when /6/
          puts "busser-serverspec has no native supported on: " + os_version_full
        when /7/
          gem 'net-ssh', '~> 4.2.0'
        else
          puts "Your distribution is either too old, or supported without pins: " + os_version_full
      end

    when /ubuntu/
      # os_family: ubuntu os_version dependent pins
      case os_version
        when /14.04/
          puts "busser-serverspec is no longer natively supported on: " + os_version_full
        when /16.04/
          puts "busser-serverspec is currently supported natively on: " + os_version_full
        else
          puts "Your distribution is either too old, or supported without pins: " + os_version_full
      end

    # No helper support provided
    else
      puts "No Gemfile helper support exists for os_family: " + os_family
  end
else
  puts "No Gemfile helper support provided for this suite."
end
