82 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # -*- 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
 | 
