Skip to content

Commit

Permalink
Merge branch 'docs-in-install'
Browse files Browse the repository at this point in the history
  • Loading branch information
wayneeseguin committed May 31, 2010
2 parents 37d00df + cc7974c commit 745c007
Show file tree
Hide file tree
Showing 6 changed files with 66 additions and 34 deletions.
1 change: 1 addition & 0 deletions README
Expand Up @@ -15,6 +15,7 @@ Flags
--jit - Used with rubinius install to build with JIT
--latest - with gemset --dump skips version strings for latest gem.
--gems - with uninstall/remove removes gems with the interpreter.
--docs - with install, attempt to generate ri after installation.
--reconfigure - Force ./configure on install even if Makefile already exists.


Expand Down
4 changes: 2 additions & 2 deletions scripts/cli
Expand Up @@ -326,7 +326,7 @@ __rvm_parse_args() {

reboot|damnit|wtf|argh|BOOM|boom|wth) $rvm_action="reboot" ;;

--self|--gem|--rubygems|--reconfigure|--default|--debug|--force|--export|--summary|--latest|--yaml|--json|--archive|--shebang|--env|--path|--tail|--delete|--verbose|--import|--rvmrc|--sticky|--create|--rvmrc|--gems)
--self|--gem|--rubygems|--reconfigure|--default|--debug|--force|--export|--summary|--latest|--yaml|--json|--archive|--shebang|--env|--path|--tail|--delete|--verbose|--import|--rvmrc|--sticky|--create|--rvmrc|--gems|--docs)
export rvm_$(echo $rvm_token | sed 's#-##g')_flag=1
if [[ "--debug" = "$rvm_token" ]] ; then rvm_debug_flag ; fi
;;
Expand Down Expand Up @@ -449,7 +449,7 @@ rvm() {
fi
result=$?
;;
docs) $rvm_scripts_path/docs ; result=$? ;;
docs) $rvm_scripts_path/docs $rvm_ruby_args ; result=$? ;;
alias) $rvm_scripts_path/alias $rvm_ruby_args ; result=$? ;;
help) $rvm_scripts_path/help $rvm_ruby_args ; result=$? ;;

Expand Down
64 changes: 40 additions & 24 deletions scripts/docs
Expand Up @@ -5,24 +5,32 @@ if [[ ! -z "$rvm_trace_flag" ]] ; then set -x ; export rvm_trace_flag ; fi
trap "if [[ -d $rvm_tmp_path/ ]] && [[ -f $rvm_tmp_path/$$ ]] ; then rm -f $rvm_tmp_path/$$ > /dev/null 2>&1 ; fi ; exit" 0 1 2 3 15

source $rvm_scripts_path/initialize
source $rvm_scripts_path/utility

rvm_ruby_string="$(basename $GEM_HOME 2>/dev/null | awk -F'@' '{print $1}')"
if [[ -z "$rvm_ruby_string" ]] && echo $GEM_HOME | grep -v 'rvm/' > /dev/null 2>&1 ; then
rvm_docs_ruby_string="$(__rvm_environment_identifier | awk -F"$rvm_gemset_separator" '{print $1}')"
if [[ "$rvm_docs_ruby_string" = "system" || -z "$rvm_docs_ruby_string" ]]; then
$rvm_scripts_path/log "error" "Currently 'rvm docs ...' does not work with non-rvm rubies."
exit 1
fi

rvm_docs_type="${rvm_docs_type:-rdoc}"
action="$(echo $rvm_ruby_args | awk '{print $1}')"

if [[ ! -d "$rvm_docs_path" ]] ; then mkdir -p "$rvm_docs_path/rdoc" "$rvm_docs_path/yard" ; fi
# Ensure we have the doc directories.
if [[ ! -d "$rvm_docs_path" ]] ; then
mkdir -p "$rvm_docs_path/rdoc" "$rvm_docs_path/yard"
fi

usage() {
printf "Usage: 'rvm docs {open,generate,generate-ri,generate-rdoc}'\n"
exit 1
}

open_docs() {
if [[ -s "$rvm_docs_path/$rvm_ruby_string/$rvm_docs_type/index.html" ]] ; then
if [[ -s "$rvm_docs_path/$rvm_docs_ruby_string/$rvm_docs_type/index.html" ]] ; then
if command -v open >/dev/null ; then
open $rvm_docs_path/$rvm_ruby_string/$rvm_docs_type/index.html
open $rvm_docs_path/$rvm_docs_ruby_string/$rvm_docs_type/index.html
elif command -v xdg-open >/dev/null ; then
xdg-open $rvm_docs_path/$rvm_ruby_string/$rvm_docs_type/index.html
xdg-open $rvm_docs_path/$rvm_docs_ruby_string/$rvm_docs_type/index.html
else
$rvm_scripts_path/log "error" "Neither open nor xdg-open were found, in order to open the docs one of these two are required. \n(OR you can let me know how else to open the html in your browser from comand line on your OS :) )"
fi
Expand All @@ -31,26 +39,34 @@ open_docs() {
fi
}

generate_docs() {
builtin cd "$rvm_src_path/$rvm_ruby_string/"
rm -rf $rvm_docs_path/$rvm_ruby_string/$rvm_docs_type/
$rvm_scripts_path/log "info" "Generating documentation, be aware that this could take a *long* time, and depends heavily on your system resources..."
$rvm_scripts_path/log "info" "( Errors will be logged to $rvm_log_path/$rvm_ruby_string/docs.error.log )"
if gem list | grep ^hanna >/dev/null 2>&1 ; then
hanna -o $rvm_docs_path/$rvm_ruby_string/$rvm_docs_type --inline-source --line-numbers --fmt=html 2>> $rvm_log_path/$rvm_ruby_string/docs.error.log
generate_ri() {
# Generate ri docs
__rvm_pushpop "$rvm_src_path/$rvm_docs_ruby_string/"
$rvm_scripts_path/log "info" "Generating ri documentation, be aware that this could take a *long* time, and depends heavily on your system resources..."
$rvm_scripts_path/log "info" "( Errors will be logged to $rvm_log_path/$rvm_docs_ruby_string/docs.error.log )"
rdoc -a --ri --ri-site > /dev/null 2>> $rvm_log_path/$rvm_docs_ruby_string/docs.error.log
__rvm_pushpop
}

generate_rdoc() {
__rvm_pushpop "$rvm_src_path/$rvm_docs_ruby_string/"
rm -rf "$rvm_docs_path/$rvm_docs_ruby_string/$rvm_docs_type/"
$rvm_scripts_path/log "info" "Generating rdoc documentation, be aware that this could take a *long* time, and depends heavily on your system resources..."
$rvm_scripts_path/log "info" "( Errors will be logged to $rvm_log_path/$rvm_docs_ruby_string/docs.error.log )"
if gem list | grep -q ^hanna ; then
hanna -o $rvm_docs_path/$rvm_docs_ruby_string/$rvm_docs_type --inline-source --line-numbers --fmt=html > /dev/null 2>> $rvm_log_path/$rvm_docs_ruby_string/docs.error.log
else
rdoc -a -o $rvm_docs_path/$rvm_ruby_string/$rvm_docs_type 2>> $rvm_log_path/$rvm_ruby_string/docs.error.log
rdoc -a -o $rvm_docs_path/$rvm_docs_ruby_string/$rvm_docs_type > /dev/null 2>> $rvm_log_path/$rvm_docs_ruby_string/docs.error.log
fi
rdoc -a --ri-site 2>> $rvm_log_path/$rvm_ruby_string/docs.error.log
__rvm_pushpop
}

if [[ "open" = "$action" ]] ; then
open_docs
elif [[ "generate" = "$action" ]] ; then
generate_docs
else
$rvm_scripts_path/log "error" ""
exit 1
fi
case "$1" in
open) open_docs ;;
generate) generate_ri; generate_rdoc ;;
generate-ri) generate_ri ;;
generate-rdoc) generate_rdoc ;;
*) usage ;;
esac

exit $result
9 changes: 9 additions & 0 deletions scripts/manage
Expand Up @@ -911,6 +911,15 @@ __rvm_post_install() {

__rvm_irbrc
__rvm_load_gemsets

__rvm_generate_default_docs
}

__rvm_generate_default_docs() {
if [[ "$rvm_docs_flag" = "1" && "$rvm_ruby_interpreter" != "macruby" ]]; then
$rvm_scripts_path/log "info" "Attempting to generate ri docs..."
(source $rvm_scripts_path/rvm; rvm use "$rvm_ruby_string"; rvm docs generate-ri) > ~/rvm-install-docs 2>&1
fi
}

__rvm_load_gemsets() {
Expand Down
2 changes: 0 additions & 2 deletions scripts/selector
Expand Up @@ -255,7 +255,6 @@ __rvm_use() {

if [[ ! -z "$rvm_verbose_flag" ]] ; then
$rvm_scripts_path/log "info" "Now using system ruby."
printf "\n"
fi

export rvm_ruby_string="system"
Expand Down Expand Up @@ -287,7 +286,6 @@ __rvm_use() {

if [[ ! -z "$rvm_verbose_flag" ]] ; then
$rvm_scripts_path/log "info" "Using $(basename $GEM_HOME | tr '-' ' ' | sed 's/'${rvm_gemset_separator}'/ with gemset /')"
printf "\n"
fi

new_path="$(echo $PATH | tr ':' '\n' | awk '$0 !~ /rvm/' | paste -sd : -)"
Expand Down
20 changes: 14 additions & 6 deletions scripts/utility
Expand Up @@ -115,7 +115,7 @@ __rvm_cleanup_variables() {

if [[ "$rvm_sticky_flag" = "1" ]] ; then export rvm_gemset_name ; else unset rvm_gemset_name ; fi

unset rvm_action rvm_irbrc_file rvm_command rvm_error_message rvm_url rvm_force_flag rvm_all_flag rvm_reconfigure_flag rvm_make_flags rvm_bin_flag rvm_import_flag rvm_export_flag rvm_self_flag rvm_gem_flag rvm_rubygems_flag rvm_debug_flag rvm_delete_flag rvm_summary_flag rvm_test_flag _rvm_spec_flag rvm_json_flag rvm_yaml_flag rvm_shebang_flag rvm_env_flag rvm_tail_flag rvm_use_flag rvm_dir_flag rvm_list_flag rvm_empty_flag rvm_file_name rvm_benchmark_flag rvm_clear_flag rvm_name_flag rvm_verbose_flag rvm_user_flag rvm_system_flag rvm_ruby_configure_flags rvm_uninstall_flag rvm_install_flag rvm_llvm_flag rvm_ruby_bits rvm_ruby_patch rvm_sticky_flagrvm_rvmrc_flag rvm_gems_flag rvm_only_path_flag
unset rvm_action rvm_irbrc_file rvm_command rvm_error_message rvm_url rvm_force_flag rvm_all_flag rvm_reconfigure_flag rvm_make_flags rvm_bin_flag rvm_import_flag rvm_export_flag rvm_self_flag rvm_gem_flag rvm_rubygems_flag rvm_debug_flag rvm_delete_flag rvm_summary_flag rvm_test_flag _rvm_spec_flag rvm_json_flag rvm_yaml_flag rvm_shebang_flag rvm_env_flag rvm_tail_flag rvm_use_flag rvm_dir_flag rvm_list_flag rvm_empty_flag rvm_file_name rvm_benchmark_flag rvm_clear_flag rvm_name_flag rvm_verbose_flag rvm_user_flag rvm_system_flag rvm_ruby_configure_flags rvm_uninstall_flag rvm_install_flag rvm_llvm_flag rvm_ruby_bits rvm_ruby_patch rvm_sticky_flagrvm_rvmrc_flag rvm_gems_flag rvm_only_path_flag rvm_docs_flag
}

# Unset ruby-specific variables
Expand Down Expand Up @@ -356,10 +356,12 @@ __rvm_pushpop() {
# Meant for use before and after an operation that might reset the currently selected ruby.
__rvm_state() {
if [[ -z "$rvm_state" ]] ; then
if [[ -z "$(command -v ruby | awk /$(basename $rvm_rubies_path)/)" ]] ; then
rvm_state=system
else
rvm_state="$(dirname "$(command -v ruby)" | xargs dirname | xargs basename)"
rvm_state="$(__rvm_environment_identifier)"
rvm_state="${rvm_state:-"system"}"
if [[ -n "$1" ]]; then
rvm_ruby_string="$1"
__rvm_select
__rvm_use
fi
else
rvm_ruby_string="$rvm_state"
Expand Down Expand Up @@ -549,7 +551,13 @@ __rvm_mono_env() {
}

__rvm_environment_identifier() {
echo "$GEM_HOME" | xargs basename
ruby_string="$(command -v ruby)"
if [ -n "$ruby_string" ] && echo "$ruby_string" | grep -q -F "$rvm_rubies_path"; then
echo "$GEM_HOME" | xargs basename
else
echo "system"
fi
unset ruby_string
}

__rvm_ensure_has_enviroment_files() {
Expand Down

0 comments on commit 745c007

Please sign in to comment.