#!/usr/bin/env zsh # Loop over available completions and add existing commands to array. local -a completions completions=(~/.config/zsh/zsh-completions/src/*) local -a command_list for completion in $completions; do local filename=$(basename $completion) local name=${filename:1} if command -v $name &> /dev/null; then command_list+=($name) fi done # Print JSON array of commands Ansible can consume. echo '[' local length=${#command_list[@]} for (( i = 1; i < $length; i++ )); do echo " \"${command_list[$i]}\"," done echo " \"${command_list[-1]}\"" echo ']'