Skip to content

Commit

Permalink
No longer need complicated gem install process
Browse files Browse the repository at this point in the history
  • Loading branch information
bbrowning committed Nov 2, 2011
1 parent 95bfb19 commit f16830a
Showing 1 changed file with 1 addition and 136 deletions.
137 changes: 1 addition & 136 deletions java_to_ruby.rb
Original file line number Diff line number Diff line change
Expand Up @@ -53,141 +53,6 @@
JRUBY_VERSION="1.6.5"
TORQUEBOX_BUILD="594"
RACK_ENV="production"
MAJOR_VERSION="2.x.incremental"
GEM_SOURCE="http://torquebox.org/2x/builds/${TORQUEBOX_BUILD}/gem-repo"
TB_VERSION="$MAJOR_VERSION.${TORQUEBOX_BUILD}"
declare -a current_deps=()
declare -a final_gems=()
declare -a held_gems=()
declare -a held_deps=()
find_tb_gem()
{
local i; for (( i = 0; i < ${#final_gems[@]}; i++ ))
do
if [ "${final_gems[i]}" == "$1" ]; then
return $i
elif [ "${final_gems[i]}" == "$1-java" ]; then
return $i
fi
done
return 255
}
process_held_gems()
{
local i; for ((i = 0; i < ${#held_gems[@]}; i++ ))
do
local deps="${held_deps[i]}"
deserialize_dependencies $deps
current_gem="${held_gems[i]}"
process_current_gem
done
}
deserialize_dependencies()
{
current_deps=()
local deps=$1
OLD_IFS=$IFS
IFS=","
set -- $deps
while (( "$#" )); do
current_deps=( "${current_deps[@]}" "$1" )
shift
done
IFS=$OLD_IFS
}
serialize_dependencies()
{
current_deps_ser=$(printf ",%s" "${current_deps[@]}")
current_deps_ser=${current_deps_ser:1}
}
process_current_gem()
{
if [ ${#current_deps[@]} -eq 0 ]; then
final_gems=( "$current_gem" "${final_gems[@]}" )
return
fi
local max_index=-1
local i; for (( i = 0; i < ${#current_deps[@]}; i++ ))
do
local current_dep="${current_deps[i]}"
find_tb_gem $current_dep
local dep_index=$?
if [ ${dep_index} -eq 255 ]; then
max_index=255
break
elif [ ${dep_index} -gt ${max_index} ]; then
max_index=$dep_index
fi
done
if [ ${max_index} -eq 255 ]; then
held_gems=( "${held_gems[@]}" "${current_gem}" )
serialize_dependencies
held_deps=( "${held_deps[@]}" "${current_deps_ser}" )
else
final_gems=(${final_gems[@]:0:$max_index + 1} "$current_gem" ${final_gems[@]:$(($max_index + 1))})
fi
return $max_index
}
install_gems()
{
dependencies=`jruby -S gem dependency --remote torquebox --version ${TB_VERSION} --source $GEM_SOURCE`
OLD_IFS=$IFS
IFS="$(echo -e "\\n\\r")"
for line in $dependencies
do
if [ "$line" == "Gem torquebox-${TB_VERSION}" ]; then
current_gem="torquebox-${TB_VERSION}"
elif echo $line | grep '^Gem' > /dev/null; then
process_current_gem
IFS=$OLD_IFS
set -- $line
current_gem=$2
current_deps=()
elif [ ! "$line" == "" ]; then
IFS=$OLD_IFS
set -- $line
gem_name=$1
gem_version=$3; gem_version=`echo ${gem_version/,/}`
if echo $line | grep '^torquebox' > /dev/null; then
current_deps=( "${current_deps[@]}" "${gem_name}-${gem_version}" )
fi
fi
done
process_current_gem
process_held_gems
local i; for (( i = 0; i < ${#final_gems[@]}; i++ ))
do
local gem_string=${final_gems[i]}
set -- ${final_gems[i]}
local gem_name=`echo "${gem_string}" | sed -E "s/^(.*)-${TB_VERSION}.*$/\\\\1/"`
if [ "$gem_name" == "torquebox-server" ]; then
# skip torquebox-server, we don't need it.
continue;
fi
echo "Installing gem - ${final_gems[i]}"
jruby -S gem fetch ${gem_name} --source ${GEM_SOURCE} --pre
if [ -e ./${gem_name}-${TB_VERSION}-java.gem ]; then
jruby -J-Xmx160m -S gem install ./${gem_name}-${TB_VERSION}-java.gem
else
jruby -J-Xmx160m -S gem install ./${gem_name}-${TB_VERSION}.gem
fi
done
}
cd ${OPENSHIFT_DATA_DIR}
Expand Down Expand Up @@ -238,7 +103,7 @@
# Install the TorqueBox gems if needed
if ! jruby -S gem list | grep "torquebox (2.x.incremental.${TORQUEBOX_BUILD})" > /dev/null; then
install_gems
jruby -S gem install torquebox --pre --source http://torquebox.org/2x/builds/${TORQUEBOX_BUILD}/gem-repo/
fi
# If .bundle isn't currently committed and a Gemfile is then bundle install
Expand Down

0 comments on commit f16830a

Please sign in to comment.