#! /bin/bash set -e # options may be followed by one colon to indicate they have a required argument if ! options=$(getopt -o dEf -l ignore-dependencies,force,no-rdoc,rdoc,no-ri,ri,env-shebang,no-env-shebang,default-gem:,build-root:,gem-binary: -- "$@") then # something went wrong, getopt will put out an error message for us exit 1 fi eval set -- "$options" gem_binary=gem defaultgem= gemfile= otheropts= buildroot= while [ $# -gt 0 ] do case $1 in --default-gem) defaultgem=$2 ; shift;; --gem-binary) gem_binary="$2" ; shift;; --build-root) otheropts="$otheropts $1=$2"; buildroot=$2; shift;; (--) ;; (-*) otheropts="$otheropts $1";; (*) gemfile=$1; otheropts="$otheropts $1"; break;; esac shift done if [ "x$gemfile" = "x" ] ; then gemfile=$(find . -maxdepth 2 -type f -name "$defaultgem") # if still empty, we pick the sources if [ "x$gemfile" = "x" ] ; then gemfile=$(find $RPM_SOURCE_DIR -name "$defaultgem") fi otheropts="$otheropts $gemfile" fi set -x $gem_binary install --verbose --local $otheropts if test -d $RPM_BUILD_ROOT/usr/bin; then cd $RPM_BUILD_ROOT/usr/bin # backward compat bins=`ls -1 *1.9 *2.0 2> /dev/null` || true if test -n "$bins"; then for bin in $bins; do mv -v $bin $(echo "$bin" | sed -e 's,2.0$,,; s,1.9$,,') done fi fi if [ -d "$buildroot" ]; then find $buildroot -type f -perm /u+x | while read file; do # TODO: scripts in ruby/1.9.1 should call ruby1.9 for consistency sed -i -e 's,^#!/usr/bin/env ruby,#!/usr/bin/ruby,; s,^#! *[^ ]*/ruby,#!/usr/bin/ruby,' "$file" done # some windows made gems are broken find $buildroot -type d | xargs ls -ld || : find $buildroot -type f | xargs ls -l || : chmod -R u+w $buildroot chmod -R o-w $buildroot fi