Azure CLIをmacOSのzsh completionで使えるようにする

微妙に動かない設定しか見つからなかったのでメモっておく。

zsh-completionをインストールする。

% brew install zsh-completion

で、エラーが出る。

zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]?

compauditでチェックして、パーミッションを修正する。

% compaudit   
There are insecure directories:
/usr/local/share/zsh/site-functions
/usr/local/share/zsh

% chmod 755 /usr/local/share/zsh/site-functions
% chmod 755 /usr/local/share/zsh/

/usr/local/share/だけ変更すれば良い可能性もあり。

bash completion用のファイルを~/.azure/az.completionとしてダウンロードする。

% mkdir ~/.azure
% curl -o ~/.azure/az.completion https://raw.githubusercontent.com/Azure/azure-cli/dev/az.completion

~/.zprofileに以下を追加する。

if type brew &>/dev/null; then
    FPATH=$(brew --prefix)/share/zsh/site-functions:$FPATH

    autoload -Uz compinit
    compinit
fi

autoload -U +X bashcompinit && bashcompinit
source ~/.azure/az.completion