ruby-common/gem_packages.sh
Stephan Kulow 5a8ec3496b Accepting request 290792 from home:darix:ruby
- Fail early if gem install fails
  This avoids confusing error messages at the end of the build.

- More fixes for ruby 1.8

- Ruby 1.8 insists on the () for the parameter

- Cleaner solution for the extensions doc dir
  The other solution was also failing on 1.8

- Forgot another option for forwarding

- Do not overwrite options.otheropts

- Fixed forwarding of options to gem install

- Only use the extensions doc dir on MRI 2.1.x

- Fix the ruby suffix for distributions before 13.2
- Do not fail with --gem-binary

- switch to ruby version of gem_install.sh
- added ruby-find-versioned to make it easier to find versioned
  binaries.
  - all for loops in the shell scripts and macros are now using
    this script

OBS-URL: https://build.opensuse.org/request/show/290792
OBS-URL: https://build.opensuse.org/package/show/devel:languages:ruby/ruby-common?expand=0&rev=85
2015-03-14 16:46:00 +00:00

62 lines
1.7 KiB
Bash

#!/bin/bash
# we always start in /home/abuild but in older distros we wouldnt find the sources that way.
# switch to /usr/src/packages/
if [ ! -d $PWD/rpmbuild ] ; then
cd /usr/src/packages/
fi
shopt -s nullglob
# options may be followed by one colon to indicate they have a required argument
if ! options=$(getopt -o dEf -l default-gem:,build-root:,gem-name:,gem-version:,gem2rpm-config: -- "$@")
then
# something went wrong, getopt will put out an error message for us
exit 1
fi
eval set -- "$options"
otheropts="--local -t /usr/lib/rpm/gem_packages.template"
defaultgem=
buildroot=
gemfile=
gemname=
gemversion=
while [ $# -gt 0 ]
do
case $1 in
--default-gem) defaultgem=$2 ; shift;;
--gem-name) gemname="$2" ; shift;;
--gem-version) gemversion="$2" ; shift;;
--build-root) buildroot=$2; shift;;
--gem2rpm-config) gem_config=$2; shift;;
(--) ;;
(-*) otheropts="$otheropts $1";;
(*) gemfile=$1; otheropts="$otheropts $1"; break;;
esac
shift
done
if [ "x$gem_config" = "x" ] ; then
gem_config=$(find $RPM_SOURCE_DIR -name "*gem2rpm.yml")
if [ "x$gem_config" != "x" ] ; then
otheropts="$otheropts --config=$gem_config"
fi
fi
if [ "x$gemfile" = "x" ] ; then
gemfile=$(find . -maxdepth 2 -type f -name "$defaultgem" -not -path \*/.gem/\* | head -n 1)
# if still empty, we pick the sources
if [ "x$gemfile" = "x" ] ; then
gemfile=$(find $RPM_SOURCE_DIR -name "$defaultgem")
fi
otheropts="$otheropts $gemfile"
fi
# workaround for rubinius bug
# https://github.com/rubinius/rubinius/issues/2732
export LC_ALL="en_US.UTF-8"
export LANG="en_US.UTF-8"
set -x
for gr in $(/usr/bin/ruby-find-versioned gem2rpm) ; do
$gr $otheropts
done