#!/usr/bin/env bash

set -e -x

export LC_ALL=en_US.UTF-8

openssl_version=`PATH=/usr/local/opt/openssl/bin:$PATH openssl version`
openssl_major_version=`echo $openssl_version | cut -f2 -d\ | cut -f1 -d.`
if [ $openssl_major_version == 0 ]; then
  echo "OpenSSL version 1 or greater is required."
  echo "Currently available: ${openssl_version}"
  exit 1
fi

echo "Installing yaml"
tar xzf ruby_openstack_cpi/yaml-0.2.1.tar.gz
pushd yaml-0.2.1 > /dev/null
  if [ `uname -m` == "ppc64le" ]; then
    CFLAGS='-fPIC' ./configure --build=ppc64le --prefix=${BOSH_INSTALL_TARGET} --disable-shared
  else
    CFLAGS='-fPIC' ./configure --prefix=${BOSH_INSTALL_TARGET} --disable-shared
  fi
  make
  make install
popd > /dev/null

echo "Installing ruby"
tar xzf ruby_openstack_cpi/ruby-2.4.5.tar.gz
pushd ruby-2.4.5 > /dev/null
  LDFLAGS="-Wl,-rpath -Wl,${BOSH_INSTALL_TARGET}" CFLAGS='-fPIC' ./configure --prefix=${BOSH_INSTALL_TARGET} --disable-install-doc --with-opt-dir=/usr/local/opt/openssl:${BOSH_INSTALL_TARGET}
  make
  make install
popd > /dev/null

echo "Installing rubygems"
tar zxvf ruby_openstack_cpi/rubygems-2.7.7.tar.gz
pushd rubygems-2.7.7
  ${BOSH_INSTALL_TARGET}/bin/ruby setup.rb
popd > /dev/null
${BOSH_INSTALL_TARGET}/bin/ruby overwrite_shebang.rb "${BOSH_INSTALL_TARGET}/bin/gem" "${BOSH_INSTALL_TARGET}/bin/ruby"

${BOSH_INSTALL_TARGET}/bin/gem install ruby_openstack_cpi/bundler-1.17.1.gem --local --no-ri --no-rdoc --force
${BOSH_INSTALL_TARGET}/bin/ruby overwrite_shebang.rb "${BOSH_INSTALL_TARGET}/bin/bundle" "${BOSH_INSTALL_TARGET}/bin/ruby"
