Я пытаюсь написать функции завершения для некоторых пользовательских функций, которые я написал, но, похоже, действительно борется даже с самыми простыми.
Пример функции:
function eb_instances() {
if [ "$#" -ne 2 ]; then
echo "Usage eb_instances <aws profile name> <environment name>"
echo "e.g.:"
echo " eb_instances production kraken-prod-api"
return 1
fi
aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" "Name=tag:Name,Values=$2" --profile=$1 --output=json | jq -r ".Reservations[].Instances[].PrivateIpAddress"
}
Это имеет два позиционных аргумента, <aws profile name>
и <environment name>
Я хочу, чтобы параметры завершения для <aws profile name>
были динамически доступны с помощью команды sed -n -E 's/\[([a-zA-Z0-9_\-]+)\]/\1/p' ~/.aws/credentials | tr \\n ' '
, и дополнения для <environment name>
которые будут динамически доступны, запустив другую функцию, которую я назвал eb_names
.
Я нахожу документацию довольно редкой и трудной для следования. Я также видел репозиторий zsh-дополнений для похожих команд, но не могу найти что-то похожее на то, что мне нужно.
Любая помощь с самого начала будет высоко ценится!