blob: 53756e6044c057658f607f87b8214239bfbb124d [file] [log] [blame]
Travis Swicegoodb524bb62012-03-26 11:19:38 -05001# Helper function loading various enable-able files
2function _load_bash_it_files() {
3 file_type="$1"
4 if [ ! -d "${BASH_IT}/${file_type}/enabled" ]
5 then
6 continue
7 fi
8 FILES="${BASH_IT}/${file_type}/enabled/*.bash"
9 for config_file in $FILES
10 do
11 if [ -e "${config_file}" ]; then
12 source $config_file
13 fi
14 done
15}
16
17# Function for reloading aliases
18function reload_aliases() {
19 _load_bash_it_files "aliases"
20}
21
22# Function for reloading auto-completion
23function reload_completion() {
24 _load_bash_it_files "completion"
25}
26
27# Function for reloading plugins
28function reload_plugins() {
29 _load_bash_it_files "plugins"
30}
Erich Smith254d4452012-05-11 14:25:24 -040031
32show_plugins ()
33{
34 about summarizes available bash_it plugins
35 group lib
36
37 typeset f
38 typeset enabled
39 printf "%-20s%-10s%s\n" 'Plugin' 'Enabled?' 'Description'
40 for f in $BASH_IT/plugins/available/*.bash
41 do
42 if [ -h $BASH_IT/plugins/enabled/$(basename $f) ]; then
43 enabled='x'
44 else
45 enabled=' '
46 fi
47 printf "%-20s%-10s%s\n" "$(basename $f | cut -d'.' -f1)" " [$enabled]" "$(cat $f | metafor about-plugin)"
48 done
49 printf '\n%s\n' 'to enable a plugin, do:'
50 printf '%s\n' '$ enable_plugin <plugin name>'
51 printf '\n%s\n' 'to disable a plugin, do:'
52 printf '%s\n' '$ disable_plugin <plugin name>'
53}
54
55enable_plugin ()
56{
57 about enables bash_it plugin
58 param 1: plugin name
59 example '$ enable_plugin rvm'
60 group lib
61
62 typeset plugin=$(ls $BASH_IT/plugins/available/$1.*bash 2>/dev/null | head -1)
63 if [ -z "$plugin" ]; then
64 printf '%s\n' 'sorry, that does not appear to be an available plugin.'
65 return
66 fi
67
68 plugin=$(basename $plugin)
69 if [ -h $BASH_IT/plugins/enabled/$plugin ]; then
70 printf '%s\n' "$1 is already enabled."
71 return
72 fi
73
74 ln -s $BASH_IT/plugins/available/$plugin $BASH_IT/plugins/enabled/$plugin
75 printf '%s\n' "$1 is enabled."
76
77 reload_plugins
78 printf '%s\n' 'plugins reloaded.'
79}
80
81disable_plugin ()
82{
83 about disables bash_it plugin
84 param 1: plugin name
85 example '$ disable_plugin rvm'
86 group lib
87
88 typeset plugin=$(ls $BASH_IT/plugins/enabled/$1.*bash 2>/dev/null | head -1)
89 if [ -z "$plugin" ]; then
90 printf '%s\n' 'sorry, that does not appear to be an enabled plugin.'
91 return
92 fi
93 rm $BASH_IT/plugins/enabled/$(basename $plugin)
94 printf '%s\n' "$1 is disabled, and will be unavailable when you open a new terminal."
95}
96
97plugins-help ()
98{
99 about list all plugins and functions defined by bash-it
100 group lib
101
102 printf '%s\n' "bash-it plugins help"
103 printf '\n'
104 typeset group
105 for group in $(all_groups)
106 do
107 printf '%s\n' "group: $group"
108 glossary $group
109 printf '\n'
110 done
111}
112
113all_groups ()
114{
115 about displays all unique metadata groups
116 group lib
117
118 typeset func
119 typeset file=$(mktemp /tmp/composure.XXXX)
120 for func in $(typeset_functions)
121 do
122 typeset -f $func | metafor group >> $file
123 done
124 cat $file | sort | uniq
125 rm $file
126}