shell bypass 403
#!/usr/bin/env bash
source "$rvm_scripts_path/functions/osx-ssl-certs"
source "$rvm_scripts_path/functions/osx-ssl-certs-curl"
__rvm_osx_ssl_certs_run_select_rubies()
{
case "$2" in
(all)
__rvm_read_lines __rubies <(
__rvm_cd "$rvm_rubies_path"
__rvm_find . -maxdepth 1 -mindepth 1 -type d 2>/dev/null | cut -c 3-
)
__rubies+=(curl)
;;
(*,*)
__rvm_custom_separated_array __rubies , "$2"
;;
("")
__rubies=( "${GEM_HOME##*/}" )
;;
(*)
__rubies=( "$2" )
;;
esac
rvm_log "Selected SSL certs for: $__rubies"
}
__rvm_osx_ssl_certs_run_filter_and_run()
{
\typeset cert_file
for __ruby in "${__rubies[@]}"
do
if
[[ "${__ruby}" == "curl" ]]
then
rvm_debug "Getting SSL certs path for ${__ruby}"
__path=$(__rvm_osx_ssl_certs_curl_cert_find_path)
[[ -z $__path || " ${__paths[*]} " == *" ${__path} "* ]] || __paths+=( "${__path}" )
elif
[[ -f "${__ruby}" && -x "${__ruby}" ]]
then
rvm_debug "Getting SSL certs for ${__ruby}"
__rvm_osx_ssl_certs_file_from_openssl "${__ruby}" || return $?
__path="$cert_file"
[[ " ${__paths[*]} " == *" ${__path} "* ]] || __paths+=( "${__path}" )
elif
[[ -f "${__ruby}" ]] &&
__rvm_grep -- "-----BEGIN CERTIFICATE-----" "${__ruby}" 1>/dev/null 2>&1
then
rvm_debug "SSL certs file for ${__ruby}"
[[ " ${__paths[*]} " == *" ${__ruby} "* ]] || __paths+=( "${__ruby}" )
elif
[[ -d "${__ruby}" ]]
then
rvm_debug "SSL certs path for ${__ruby}"
[[ " ${__paths[*]} " == *" ${__ruby} "* ]] || __paths+=( "${__ruby}" )
else
rvm_debug "Getting ruby certs path for ${__ruby}"
__path="$( __rvm_with "${__ruby}" "__rvm_osx_ssl_certs_file_for_ruby" )"
[[ " ${__paths[*]} " == *" ${__path} "* ]] || __paths+=( "${__path}" )
fi
done
for __path in "${__paths[@]}"
do
rvm_debug "Updating SSL certs ${__path}"
"$1" "${__path}"
done
}
__rvm_osx_ssl_certs_run()
{
\typeset __ruby __path
\typeset -a __rubies __paths
__rubies=()
__paths=()
__rvm_osx_ssl_certs_run_select_rubies "$@"
__rvm_osx_ssl_certs_run_filter_and_run "$@"
}
__rvm_osx_ssl_certs_status()
{
__rvm_osx_ssl_certs_run __rvm_osx_ssl_certs_status_for_path "$1"
}
__rvm_osx_ssl_certs_update()
{
__rvm_osx_ssl_certs_run __rvm_osx_ssl_certs_update_for_path "$1"
}
__rvm_osx_ssl_certs_cron_status()
{
if __rvm_cron_find "$RVM_OSX_SSL_UPDATER"
then rvm_log "Automatic certs updating installed."
else rvm_warn "Automatic certs updating not installed."
fi
}
__rvm_osx_ssl_certs_cron_install()
{
if
__rvm_cron_find "$RVM_OSX_SSL_UPDATER"
then
__rvm_cron_uninstall "$RVM_OSX_SSL_UPDATER" ||
{
\typeset result=$?
rvm_error "Automatic certs updating failed uninstalling."
return $result
}
fi
if
__rvm_cron_install "$RVM_OSX_SSL_UPDATER"
then
rvm_log "Automatic certs updating installed."
else
\typeset result=$?
rvm_error "Automatic certs updating failed installing."
return $result
fi
}
__rvm_osx_ssl_certs_cron_uninstall()
{
if
__rvm_cron_find "$RVM_OSX_SSL_UPDATER"
then
if
__rvm_cron_uninstall "$RVM_OSX_SSL_UPDATER"
then
rvm_log "Automatic certs updating uninstalled."
else
\typeset result=$?
rvm_error "Automatic certs updating failed uninstalling."
return $result
fi
else
rvm_log "Automatic certs updating already uninstalled."
fi
}
__rvm_osx_ssl_certs_cron()
{
\typeset cron_action="${1:-status}"
shift 1
case "${cron_action}" in
(status|install|uninstall)
__rvm_osx_ssl_certs_cron_${cron_action}
;;
(help)
rvm_help osx-ssl-certs cron "$@"
;;
(*)
rvm_error_help "Unknown subcommand '$*' for osx-ssl-certs cron" osx-ssl-certs cron "$@"
return 1
;;
esac
}
__rvm_osx_ssl_certs()
{
\typeset action="${1:-status}"
shift 1
case "${action}" in
(status|update|cron)
if
[[ "${_system_name}" == "OSX" ]]
then
__rvm_osx_ssl_certs_${action} "$@"
else
rvm_error "'rvm osx-ssl-certs' is intended only for OSX systems, it is not required on ${_system_name}."
return 1
fi
;;
(help)
rvm_help osx-ssl-certs "$@"
;;
(*)
rvm_error_help "Unknown subcommand '$*' for osx-ssl-certs" osx-ssl-certs "$@"
return 1
;;
esac
}
__rvm_osx_ssl_certs "${args[@]}"