r3-cloud/r3-completion.bash

43 lines
2.2 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
R3_INSTALL_PATH=/usr/share/cybafelo/r3/r3-cloud
2021-06-28 09:05:53 +02:00
R3_SRC_FOLDER="${R3_INSTALL_PATH}/r3-libs/r3-v2/src/r3/"
R3_V2_FOLDER="${R3_INSTALL_PATH}/r3-libs/r3-v2/"
r3_completions() {
# TASK=${#COMP_WORDS[1]}
if [ "${#COMP_WORDS[@]}" == "2" ]; then
COMPREPLY=($(compgen -W "build-graph create build-events update-options update-templates update-methods update-token-db" "${COMP_WORDS[1]}"))
2021-06-28 09:05:53 +02:00
fi
if [[ "${#COMP_WORDS[@]}" == "3" && ( "${COMP_WORDS[1]}" == "update-templates" || "${COMP_WORDS[1]}" == "update-options" || "${COMP_WORDS[1]}" == "update-methods" ) ]]; then
COMPREPLY=($(compgen -W "$(grep "r3 create" "${R3_V2_FOLDER}.r3_history" | sed "s/^.*r3 /r3 /" | sed "s/\s+/ /g" | sort --unique | cut -d' ' -f3 | sed 's/\([A-Z]\)/-\1/g' | awk '{print tolower($0)}' | sed "s/^/r3/" | sed "s/$/.js/" | perl -pe "s/\n/ /")" "${COMP_WORDS[2]}"))
fi
if [ "${#COMP_WORDS[@]}" == "4" ]; then
COMPREPLY=($(compgen -W "extends normal system static system-base r3-base" "${COMP_WORDS[3]}"))
fi
2021-06-28 09:05:53 +02:00
if [ "${#COMP_WORDS[@]}" == "5" ] && [ "${COMP_WORDS[3]}" == "extends" ] ; then
2021-07-03 10:40:18 +02:00
local classes=$(grep "^class" "${R3_INSTALL_PATH}"/r3-libs/r3-v2/src/r3/*.js "${R3_INSTALL_PATH}"/r3-libs/r3-v2/src/r3/r3-component/*.js | perl -pe "s/.*class\s*(\w.*?)\s.*/\1/" | perl -pe 's/\n/ /g')
COMPREPLY=($(compgen -W "${classes}" "${COMP_WORDS[4]}"))
fi
2021-06-28 09:05:53 +02:00
if [ "${#COMP_WORDS[@]}" == "5" ] && [ "${COMP_WORDS[3]}" == "system" ] ; then
local classes=$(grep "^class" "${R3_INSTALL_PATH}"/r3-libs/r3-v2/src/r3/r3-system/*.js | perl -pe "s/.*class\s*(\w.*?)\s.*/\1/" | perl -pe 's/\n/ /g')
COMPREPLY=($(compgen -W "${classes}" "${COMP_WORDS[4]}"))
fi
2021-07-03 10:40:18 +02:00
if [[ "${#COMP_WORDS[@]}" == "5" && ( "${COMP_WORDS[3]}" == "normal" || "${COMP_WORDS[3]}" == "static") ]]; then
2021-06-28 09:05:53 +02:00
COMPREPLY=($(compgen -W "$(find "${R3_SRC_FOLDER}" -ls | grep drw | sed "s/.*src\/r3/./" | sed "s/$/\//" | sed "s/\/\//\//g" | perl -pe 's/\n/ /g')" "${COMP_WORDS[4]}"))
fi
2021-07-03 10:40:18 +02:00
if [[ "${#COMP_WORDS[@]}" == "6" && ( "${COMP_WORDS[3]}" == "extends") ]]; then
COMPREPLY=($(compgen -W "$(find "${R3_SRC_FOLDER}" -ls | grep drw | sed "s/.*src\/r3/./" | sed "s/$/\//" | sed "s/\/\//\//g" | perl -pe 's/\n/ /g')" "${COMP_WORDS[5]}"))
fi
}
complete -F r3_completions r3