harshadyeola
10 years ago
1 changed files with 184 additions and 0 deletions
@ -0,0 +1,184 @@ |
|||||
|
function ee_single() |
||||
|
{ |
||||
|
for (( j=0; j<${#COMP_WORDS[@]}; j++ )); do |
||||
|
for (( i=0; i<${#COMPREPLY[@]}; i++ )); do |
||||
|
if [[ ${COMP_WORDS[COMP_CWORD-j]} == ${COMPREPLY[i]} ]]; then |
||||
|
rem=( ${COMP_WORDS[COMP_CWORD-j]} ); |
||||
|
COMPREPLY=( "${COMPREPLY[@]/$rem}" ) |
||||
|
fi |
||||
|
done |
||||
|
done |
||||
|
} |
||||
|
|
||||
|
_ee_complete() |
||||
|
{ |
||||
|
local cur prev BASE_LEVEL |
||||
|
|
||||
|
COMPREPLY=() |
||||
|
cur=${COMP_WORDS[COMP_CWORD]} |
||||
|
prev=${COMP_WORDS[COMP_CWORD-1]} |
||||
|
mprev=${COMP_WORDS[COMP_CWORD-2]} |
||||
|
|
||||
|
|
||||
|
# SETUP THE BASE LEVEL (everything after "ee") |
||||
|
if [ $COMP_CWORD -eq 1 ]; then |
||||
|
COMPREPLY=( $(compgen \ |
||||
|
-W "stack site debug clean secure" \ |
||||
|
-- $cur) ) |
||||
|
|
||||
|
|
||||
|
# SETUP THE SECOND LEVEL (EVERYTHING AFTER "ee second") |
||||
|
elif [ $COMP_CWORD -eq 2 ]; then |
||||
|
case "$prev" in |
||||
|
|
||||
|
# HANDLE EVERYTHING AFTER THE SECOND LEVEL NAMESPACE |
||||
|
"clean") |
||||
|
COMPREPLY=( $(compgen \ |
||||
|
-W "--memcache --opcache --fastcgi --all" \ |
||||
|
-- $cur) ) |
||||
|
;; |
||||
|
|
||||
|
# IF YOU HAD ANOTHER CONTROLLER, YOU'D HANDLE THAT HERE |
||||
|
"debug") |
||||
|
COMPREPLY=( $(compgen \ |
||||
|
-W "--start --nginx --php --fpm --mysql -i --interactive" \ |
||||
|
-- $cur) ) |
||||
|
;; |
||||
|
|
||||
|
"stack") |
||||
|
COMPREPLY=( $(compgen \ |
||||
|
-W "install purge reload remove restart start status stop" \ |
||||
|
-- $cur) ) |
||||
|
;; |
||||
|
|
||||
|
"site") |
||||
|
COMPREPLY=( $(compgen \ |
||||
|
-W "create delete disable edit enable info list log show update" \ |
||||
|
-- $cur) ) |
||||
|
;; |
||||
|
|
||||
|
"secure") |
||||
|
COMPREPLY=( $(compgen \ |
||||
|
-W "--auth --port --ip" \ |
||||
|
-- $cur) ) |
||||
|
;; |
||||
|
|
||||
|
"info") |
||||
|
COMPREPLY=( $(compgen \ |
||||
|
-W "--mysql --php --nginx" \ |
||||
|
-- $cur) ) |
||||
|
;; |
||||
|
|
||||
|
# EVERYTHING ELSE |
||||
|
*) |
||||
|
;; |
||||
|
esac |
||||
|
|
||||
|
# SETUP THE THIRD LEVEL (EVERYTHING AFTER "ee second third") |
||||
|
elif [ $COMP_CWORD -eq 3 ]; then |
||||
|
case "$prev" in |
||||
|
# HANDLE EVERYTHING AFTER THE THIRD LEVEL NAMESPACE |
||||
|
"install" | "purge" | "remove" | "start" | "stop" | "reload") |
||||
|
COMPREPLY=( $(compgen \ |
||||
|
-W "--web --admin --mail --nginx --php --mysql --postfix --wpcli --phpmyadmin --adminer --utils --memcache --dovecot" \ |
||||
|
-- $cur) ) |
||||
|
;; |
||||
|
|
||||
|
"list") |
||||
|
COMPREPLY=( $(compgen \ |
||||
|
-W "--enabled --disabled" \ |
||||
|
-- $cur) ) |
||||
|
;; |
||||
|
|
||||
|
"edit" | "enable" | "info" | "log" | "show" | "cd" | "update") |
||||
|
COMPREPLY=( $(compgen \ |
||||
|
-W "$(find /etc/nginx/sites-available/ -type f -printf "%P " 2> /dev/null)" \ |
||||
|
-- $cur) ) |
||||
|
;; |
||||
|
|
||||
|
"disable") |
||||
|
COMPREPLY=( $(compgen \ |
||||
|
-W "$(command find /etc/nginx/sites-enabled/ -type l -printf "%P " 2> /dev/null)" \ |
||||
|
-- $cur) ) |
||||
|
;; |
||||
|
|
||||
|
*) |
||||
|
;; |
||||
|
esac |
||||
|
|
||||
|
# case "$mprev" in |
||||
|
# "debug") |
||||
|
# COMPREPLY=( $(compgen \ |
||||
|
# -W "--wp --nginx --rewrite --start --stop -i --interactive" \ |
||||
|
# -- $cur) ) |
||||
|
# ;; |
||||
|
# |
||||
|
# *) |
||||
|
# ;; |
||||
|
# esac |
||||
|
|
||||
|
elif [ $COMP_CWORD -eq 4 ]; then |
||||
|
case "$mprev" in |
||||
|
# HANDLE EVERYTHING AFTER THE THIRD LEVEL NAMESPACE |
||||
|
|
||||
|
"create" | "update") |
||||
|
COMPREPLY=( $(compgen \ |
||||
|
-W "--html --php --mysql --wp --wpsubdir --wpsubdomain --w3tc --wpfc --wpsc" \ |
||||
|
-- $cur) ) |
||||
|
;; |
||||
|
"delete") |
||||
|
COMPREPLY=( $(compgen \ |
||||
|
-W "--db --files --all" \ |
||||
|
-- $cur) ) |
||||
|
|
||||
|
|
||||
|
esac |
||||
|
fi |
||||
|
|
||||
|
case "$prev" in |
||||
|
"--wpsubdir" | "--wpsubdomain") |
||||
|
COMPREPLY=( $(compgen \ |
||||
|
-W "--w3tc --wpfc --wpsc" \ |
||||
|
-- $cur) ) |
||||
|
;; |
||||
|
|
||||
|
"--web" | "--admin" | "--mail" | "--nginx" | "--php" | "--mysql" | "--postfix" | "--wpcli" | "--phpmyadmin" | "--adminer" | "--utils" | "--memcache" | "--dovecot") |
||||
|
if [[ $COMP_WORDS =~ "stack" ]]; then |
||||
|
retlist="--web --admin --mail --nginx --php --mysql --postfix --wpcli --phpmyadmin --adminer --utils --memcache --dovecot" |
||||
|
ret="${retlist[@]/$prev}" |
||||
|
COMPREPLY=( $(compgen \ |
||||
|
-W "$(echo $ret)" \ |
||||
|
-- $cur) ) |
||||
|
fi |
||||
|
;; |
||||
|
|
||||
|
"--db" | "--files" | "--all") |
||||
|
retlist="--db --files --all" |
||||
|
ret="${retlist[@]/$prev}" |
||||
|
COMPREPLY=( $(compgen \ |
||||
|
-W "$(echo $ret)" \ |
||||
|
-- $cur) ) |
||||
|
;; |
||||
|
|
||||
|
"--memcache" | "--opcache" | "--fastcgi" | "--all") |
||||
|
retlist="--memcache --opcache --fastcgi --all" |
||||
|
ret="${retlist[@]/$prev}" |
||||
|
COMPREPLY=( $(compgen \ |
||||
|
-W "$(echo $ret)" \ |
||||
|
-- $cur) ) |
||||
|
;; |
||||
|
"--auth" | "--port" | "--ip") |
||||
|
retlist="--auth --port --ip" |
||||
|
ret="${retlist[@]/$prev}" |
||||
|
COMPREPLY=( $(compgen \ |
||||
|
-W "$(echo $ret)" \ |
||||
|
-- $cur) ) |
||||
|
;; |
||||
|
*) |
||||
|
;; |
||||
|
esac |
||||
|
|
||||
|
return 0 |
||||
|
|
||||
|
} && |
||||
|
complete -F _ee_complete ee |
Loading…
Reference in new issue