forked from whatwedo/dde
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhelp.sh
executable file
·45 lines (35 loc) · 1.75 KB
/
help.sh
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
function help() {
if [[ ${1} ]]; then
local _scriptFile="${ROOT_DIR}/commands/${1//:/\/}.sh"
if [[ -f ${_scriptFile} ]]; then
_logGreen "help for ${1}"
sed -n '/^#/,$p;/^function/q' ${_scriptFile} | sed -n -e '/^#/p' | sed -e 's/^#*\s//g' | sed -e 's/^#//g'
fi
else
printf "%s <command> [args]\n" "${0}"
echo ""
_logYellow "Arguments:"
echo " --autocomplete add \`eval \$(~/dde/dde.sh --autocomplete)\` to your \`~/.zshrc\` or \`~/.bash_profile\`"
echo " --help show extended help for command, if exists"
echo ""
local _functionName=" "
_logYellow "System Commands:"
for commandName in $(compgen -A function | grep "system:"); do
echo " ${commandName:0:${#_functionName}}${_functionName:0:$((${#_functionName} - ${#commandName}))} $(_getFunctionHelp ${commandName})"
done
_logYellow "\nProject Commands:"
for commandName in $(compgen -A function | grep "project:"); do
echo " ${commandName:0:${#_functionName}}${_functionName:0:$((${#_functionName} - ${#commandName}))} $(_getFunctionHelp ${commandName})"
done
_logYellow "\nLocal Commands:"
for commandName in $(compgen -A function | grep "local:"); do
echo " ${commandName:0:${#_functionName}}${_functionName:0:$((${#_functionName} - ${#commandName}))} $(_getFunctionHelp ${commandName})"
done
fi
}
function _getFunctionHelp() {
local _scriptFile="${ROOT_DIR}/commands/${1//:/\/}.sh"
if [[ -f ${_scriptFile} ]]; then
sed -e '/^##.*/!d;p' ${_scriptFile} | head -1 | sed -e 's/^##\s*//g' | tr -d '\n'
fi
}