-
Notifications
You must be signed in to change notification settings - Fork 296
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Resolve gem dependencies across "supported" environments (#142)
- Loading branch information
Showing
1 changed file
with
81 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
# -*- 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 |
cf3b048
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@scub I was trying to model your gem fix to resolve issues in centos-7.2 I have with a different formula, but when I run tests on this formula, it still fails with this error.