inspec/habitat/plan.sh
Adam Leff 73d46f9c49
Replace Nokogiri with REXML in the JUnit formatter
In #1454, we welcomed a newly-revamped JUnit formatter which has
a dependency on Nokogiri. Unfortunately, this had led us to problems
getting InSpec included in Chef omnibus builds (see chef/chef#5937)
because Chef is using Ruby 2.4.1 and the Nokogiri maintainers have
not yet released a windows binary gem that supports Ruby 2.4.x.
This has led to breaking builds in Chef's CI platform and would
block the acceptance of chef/chef#5937.

This change replaces Nokogiri use with REXML instead. While REXML
can be slower than Nokogiri, it does not require native extensions
and is supported on all Chef platforms.

Signed-off-by: Adam Leff <adam@leff.co>
2017-04-03 14:51:48 -04:00

67 lines
1.3 KiB
Bash

pkg_name=inspec
pkg_origin=chef
pkg_version=$(cat "VERSION")
pkg_description="InSpec is an open-source testing framework for infrastructure
with a human- and machine-readable language for specifying compliance,
security and policy requirements."
pkg_upstream_url=https://github.com/chef/inspec
pkg_maintainer="The Habitat Maintainers <humans@habitat.sh>"
pkg_license=('Apache-2.0')
pkg_source=false
pkg_deps=(
core/coreutils
core/libxml2
core/libxslt
core/ruby
core/net-tools
)
pkg_build_deps=(
core/bundler
core/coreutils
core/gcc
core/make
core/readline
)
pkg_bin_dirs=(bin)
do_download() {
return 0
}
do_verify() {
return 0
}
do_unpack() {
return 0
}
do_prepare() {
# Create a Gemfile with what we need
cat > Gemfile <<GEMFILE
source 'https://rubygems.org'
gem '$pkg_name', '= $pkg_version'
gem 'rake'
GEMFILE
}
do_build() {
local _bundler_dir
local _libxml2_dir
local _libxslt_dir
_bundler_dir="$(pkg_path_for bundler)"
export GEM_HOME=${pkg_path}/vendor/bundle
export GEM_PATH=${_bundler_dir}:${GEM_HOME}
export BUNDLE_SILENCE_ROOT_WARNING=1
bundle install --jobs "$(nproc)" --retry 5 --standalone \
--path "$pkg_prefix/bundle" \
--binstubs "$pkg_prefix/bin"
}
do_install () {
fix_interpreter "$pkg_prefix/bin/*" core/coreutils bin/env
cp Gemfile.lock "$pkg_prefix"
}