# -*- 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