-
-
Notifications
You must be signed in to change notification settings - Fork 1k
/
docs
executable file
·67 lines (58 loc) · 2.74 KB
/
docs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/usr/bin/env bash
rvm_base_except="selector"
source "$rvm_scripts_path/base"
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}"
# 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_docs_ruby_string/$rvm_docs_type/index.html" ]] ; then
if command -v open >/dev/null ; then
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_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
else
$rvm_scripts_path/log "error" "$rvm_docs_type docs are missing, perhaps run 'rvm docs generate' first?"
fi
}
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_docs_ruby_string/$rvm_docs_type > /dev/null 2>> $rvm_log_path/$rvm_docs_ruby_string/docs.error.log
fi
__rvm_pushpop
}
case "$1" in
open) open_docs ;;
generate) generate_ri; generate_rdoc ;;
generate-ri) generate_ri ;;
generate-rdoc) generate_rdoc ;;
*) usage ;;
esac
exit $result