shell bypass 403
#!/usr/bin/env bash
maglev_install()
{
__rvm_ensure_has_mri_ruby
compatible_ruby="$(__rvm_mri_ruby)"
rvm_log "Running MagLev prereqs checking script."
"$rvm_scripts_path/maglev" ||
{
result=$?
rvm_error "Prerequisite checks have failed. \nHalting the installation."
return $result
}
__rvm_cd "${rvm_src_path}"
if
[[ ! -d "${rvm_src_path}/$rvm_ruby_string" ]] ||
(( ${rvm_head_flag:=0} == 1 ))
then
__rvm_fetch_ruby ||
{
result=$?
rvm_error "There has been an error while trying to fetch the source. \nHalting the installation."
exit $result
}
fi
system="${_system_type}"
arch="${_system_arch}"
if [[ "${system}-${arch}" == "Darwin-x86_64" ]]
then arch="i386"
fi
if
(( ${rvm_head_flag:=0} == 1 ))
then
__rvm_cd "${rvm_src_path}/$rvm_ruby_string"
rvm_gemstone_package_file="GemStone-$(__rvm_grep "^GEMSTONE" version.txt | cut -f2 -d-).${system}-${arch}"
rvm_gemstone_url="$maglev_url/${rvm_gemstone_package_file}.${rvm_archive_extension}"
fi
rvm_log "Downloading the GemStone package, this may take a while depending on your connection..."
"$rvm_scripts_path/fetch" "$rvm_gemstone_url" ||
{
result=$?
rvm_error "There has been an error while trying to fetch the GemStone package.\nHalting the installation."
return $result
}
__rvm_cd "${rvm_src_path}"
if [[ -s "$rvm_ruby_package_file" ]]
then \command \mv "$rvm_ruby_package_file" "${rvm_src_path}/$rvm_ruby_string"
fi
__rvm_cd "${rvm_src_path}/$rvm_ruby_string"
if
[[ -d "${rvm_src_path}/${rvm_gemstone_package_file}" ]]
then
__rvm_log_command "gemstone.fix_rights" \
"Fixing gemstone rights" \
chmod -R u+w "${rvm_src_path}/${rvm_gemstone_package_file}"
else
mkdir -p "${rvm_src_path}/${rvm_gemstone_package_file}"
fi
__rvm_log_command "extract" \
"$rvm_ruby_string - #extracting $rvm_gemstone_package_file to ${rvm_src_path}" \
__rvm_package_extract "${rvm_archives_path}/$rvm_gemstone_package_file.$rvm_archive_extension" "${rvm_src_path}" ||
case $? in
199)
rvm_error "\nUnrecognized archive format '$archive_format'"
return 199
;;
*)
rvm_error "There has been an error while trying to extract the source. Halting the installation."
return 1
;;
esac
ln -fs "${rvm_src_path}/$rvm_gemstone_package_file" "gemstone"
__rvm_rm_rf $rvm_ruby_home
__rvm_log_command "install" \
"Installing maglev to $rvm_ruby_home" \
__rvm_cp -Rf "${rvm_src_path}/$rvm_ruby_string" "$rvm_ruby_home"
(
__rvm_cd "$rvm_ruby_home/bin/"
for binary in maglev-irb maglev-ruby maglev-gem
do
ln -fs "$binary" "${binary#maglev-}"
done
unset binary
)
__rvm_cd "$rvm_ruby_home"
if
(( ${rvm_head_flag:=0} == 1 ))
then
\command \git submodule update --init
"$rvm_ruby_home/bin/maglev" force-reload
fi
ln -fs maglev.demo.key-${system}-${arch} etc/maglev.demo.key
__rvm_log_command "build:maglev" \
"Bootstrapping a new image" \
"$rvm_wrappers_path/$compatible_ruby/rake" "build:maglev"
[[ -e ${rvm_ruby_home}/etc/conf.d/maglev.conf ]] ||
__rvm_log_command "stone.create" \
"Creating default 'maglev' repository." \
"$rvm_wrappers_path/$compatible_ruby/rake" "stone:create[maglev]" >/dev/null 2>&1
__rvm_log_command "rdoc" \
"Generating maglev HTML documentation" \
"$rvm_wrappers_path/$compatible_ruby/rake" rdoc >/dev/null 2>&1
__rvm_log_command "stwrappers" \
"Generating smalltalk FFI." \
"$rvm_wrappers_path/$compatible_ruby/rake" stwrappers >/dev/null 2>&1
unset compatible_ruby
__rvm_initial_gemsets_create_without_rubygems "$rvm_ruby_home/bin/ruby" &&
__rvm_irbrc &&
__rvm_fetch_ruby_cleanup
}