shell bypass 403
#!/usr/bin/env bash
# old handlers before pkgng
requirements_freebsd_lib_installed()
{
pkg_info | __rvm_grep "^$1" >/dev/null 2>&1 || return $?
}
requirements_freebsd_libs_install()
{
__rvm_try_sudo pkg_add -r "$@" || return $?
}
# new handlers for pkgng
requirements_freebsd_pkgng_lib_installed()
{
pkg info | __rvm_grep "^$1" >/dev/null 2>&1 || return $?
}
requirements_freebsd_pkgng_libs_install()
{
__rvm_try_sudo pkg install -y "$@" || return $?
}
requirements_freebsd_install_node()
{
# TODO: missing pkgng!
if
[[ -d /usr/ports ]]
then
__rvm_try_sudo portsnap fetch update || return $?
else
rvm_requiremnts_fail_or_run_action 2 \
"Skipping portsnap fetch extract, make sure your system is up to date." \
__rvm_try_sudo portsnap fetch extract || return $?
packages_flags+=( "portsnap-extracted" )
fi
# plain make is required for sudo
__rvm_try_sudo make -C /usr/ports/www/node install clean || return $?
}
requirements_freebsd_before_detect_package_manager()
{
if
__rvm_version_compare ${_system_version} -ge 10.0
then
__lib_type="freebsd_pkgng"
else
__lib_type="freebsd"
if
__rvm_which pkg >/dev/null &&
[[ -s /var/db/pkg/local.sqlite ]]
then
__lib_type+='_pkgng'
fi
fi
}
requirements_freebsd_before()
{
if
__rvm_version_compare ${_system_version} -le 10.0
then
rvm_warn "rvm is best supported on FreeBSD 10+"
fi
requirements_freebsd_before_detect_package_manager
# TODO: when the time is out deprecate the old pkg_tools https://wiki.freebsd.org/pkgng/CharterAndRoadMap
}
requirements_freebsd_libs_default()
{
requirements_check autoconf automake libtool bison readline libyaml sqlite3 gdbm
}
requirements_freebsd_update_system()
{
case "${__lib_type}" in
(freebsd_pkgng)
if
[[ -s /usr/local/etc/pkg.conf ]]
then
__rvm_try_sudo pkg update || return $?
fi
;;
esac
}
requirements_freebsd_define()
{
case "$1" in
(rvm)
requirements_check bash curl
;;
(jruby*)
requirements_check make openjdk
if
is_head_or_disable_binary "$1"
then
requirements_check git
case $( jruby_installation_method "$1" ) in
ant) __rvm_which ant >/dev/null || requirements_check apache-ant ;;
mvn) __rvm_which mvn >/dev/null || requirements_check maven3 ;;
esac
fi
;;
(ir*)
requirements_check mono
;;
(opal)
requirements_check_custom node
;;
(rbx*)
if
__rvm_version_compare ${_system_version} -ge 10.0
then
rvm_configure_flags+=( --cc=clang --cxx=clang++ )
requirements_check gmake llvm35
rvm_warn "If rbx installation fails, make sure llvm-config is in your PATH"
else
rvm_warn "rbx installation by rvm is only supported on FreeBSD 10 or higher"
fi
;;
(*-head)
requirements_check git
requirements_freebsd_define "${1%-head}"
requirements_freebsd_libs_default
__rvm_update_configure_opt_dir "$1" "/usr/local"
;;
(*)
# OpenSSL is installed by default http://www.freebsd.org/crypto.html
requirements_freebsd_libs_default
__rvm_update_configure_opt_dir "$1" "/usr/local"
;;
esac
}