From 80d2d18b7febf89e7d6259c3010b3442c9249d7b Mon Sep 17 00:00:00 2001 From: Gurkirat Singh Date: Sat, 9 Jan 2021 01:51:56 +0530 Subject: [PATCH] fixed the typings of wpscan --- completion/available/wpscan.completion.bash | 65 ++++++++++++++++++--- 1 file changed, 56 insertions(+), 9 deletions(-) diff --git a/completion/available/wpscan.completion.bash b/completion/available/wpscan.completion.bash index f9ea5790..7e79efad 100644 --- a/completion/available/wpscan.completion.bash +++ b/completion/available/wpscan.completion.bash @@ -1,15 +1,62 @@ #!/usr/bin/bash if command -v wpscan > /dev/null; then - __wpscan_completion() { - local OPTS=("--help --hh --version --url --ignore-main-redirect --verbose --output --format --detection-mode --scope --headers --user-agent --vhost --random-user-agent --user-agents-list --http-auth --max-threads --throttle --request-timeout --connect-timeout --disable-tlc-checks --proxy --proxy-auth --cookie-string --cookie-jar --cache-ttl --clear-cache --server --cache-dir --update --no-update --wp-content-dir --wp-plugins-dir --wp-version-detection --main-theme-detection --enumerate --exclude-content-based --plugins-list --plugins-detection --plugins-version-all --plugins-version-detection --themes-list --themes-detection --themes-version-all --themes-version-detection --timthumbs-list --timthumbs-detection --config-backups-list --config-backups-detection --db-exports-list --db-exports-detection --medias-detection --users-list --users-detection --passwords --usernames --multicall-max-passwords --password-attack --stealthy") - COMPREPLY=() - for _opt_ in ${OPTS[@]}; do - if [[ "$_opt_" == "$2"* ]]; then - COMPREPLY+=("$_opt_") - fi - done + + _wpscan_completions() { + + local cur prev + COMREPLY=() + cur=$(_get_cword) + prev=$(_get_pword) + + local SINGLES=$(compgen -W "-h -v -f -o -t -e -U -P") + local DOUBLES=$(compgen -W "--url --help --hh --version --ignore-main-redirect --banner --no-banner --max-scan-duration --format --output --detection-mode --user-agent --ua --http-auth --max-threads --throttle --request-timeout --connect-timeout --disable-tls-checks --proxy --proxy-auth --cookie-string --cookie-jar --force --update --no-update --api-token --wp-content-dir --wp-plugins-dir --enumerate --exclude-content-based --plugins-list --plugins-detection --plugins-version-all --plugins-version-detection --plugins-threshold --themes-list --themes-detection --themes-version-all --themes-version-detection --themes-threshold --timthumbs-list --timthumbs-detection --config-backups-list --config-backups-detection --db-exports-list --db-exports-detection --medias-detection --users-list --users-detection --passwords --usernames --multicall-max-passwords --password-attack --login-uri --stealthy --random-user-agent") + local OPTS=("${SINGLES[@]}" "${DOUBLES[@]}") + + local DETECTION="mixed active passive" + case $prev in + --format | -f) + COMPREPLY=("$(compgen -W "cli cli-no-color json" -- "$cur")") + return 0 + ;; + + --detection-mode | *detection) + COMPREPLY=("$(compgen -W "$DETECTION" -- "$cur")") + return 0 + ;; + + --enumerate | -e) + case $prev in + vp | ap | p) + COMPREPLY=("$(compgen -W "vt at t tt cb dbe u m" -- "$cur")") + return 0 + ;; + vt | at | t) + COMPREPLY=("$(compgen -W "vp ap p tt cb dbe u m" -- "$cur")") + return 0 + ;; + *) + COMPREPLY=("$(compgen -W "vp ap p vt at t tt cb dbe u m" -- "$cur")") + return 0 + ;; + esac + ;; + + --password-attack) + COMPREPLY=("$(compgen -W "wp-login xmlrpc xmlrpc-multicall" -- "$cur")") + ;; + + ## HANDLE ALL OTHER + *) + for OPT in "${OPTS[@]}"; do + if [[ "$OPT" == "$2"* ]]; then + COMPREPLY+=("$OPT") + fi + done + + ;; + esac } - complete -F __wpscan_completion wpscan + complete -F _wpscan_completions wpscan fi