さわらブログ

さわら(@xhiroga)の技術ブログ

macOSにHomebrewでgcloudコマンドをインストールしたらタブ補完が効かなかった時のメモ

TL;DR

こちらのQiita記事を参考にしました。
(記事中にタブ補完について言及がなかったので私もブログを書いている次第です) qiita.com

解説

brew ないし brew cask では、インストールしたパッケージについての情報を参照するコマンドがあります。 例えば awscli だと...

$ brew info awscli
awscli: stable 1.16.130 (bottled), HEAD
Official Amazon AWS command-line interface
https://aws.amazon.com/cli/
/usr/local/Cellar/awscli/1.16.130 (5,272 files, 49MB) *
  Poured from bottle on 2019-04-05 at 18:05:00
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/awscli.rb
==> Dependencies
Required: python ✔
==> Options
--HEAD
    Install HEAD version
==> Caveats
The "examples" directory has been installed to:
  /usr/local/share/awscli/examples

Bash completion has been installed to:
  /usr/local/etc/bash_completion.d

zsh completions and functions have been installed to:
  /usr/local/share/zsh/site-functions
==> Analytics
install: 51,155 (30 days), 172,572 (90 days), 663,663 (365 days)
install_on_request: 48,269 (30 days), 161,871 (90 days), 601,401 (365 days)
build_error: 0 (30 days)

Caveats (ユーザーへの要求)として、いくつか項目があげられるのがわかると思います。

したがって、 gcloudgoogle-cloud-sdk )のinfoを参照すると...

brew cask info google-cloud-sdk
google-cloud-sdk: latest
https://cloud.google.com/sdk/
/usr/local/Caskroom/google-cloud-sdk/latest (20,446 files, 281.3MB)
From: https://github.com/Homebrew/homebrew-cask/blob/master/Casks/google-cloud-sdk.rb
==> Name
Google Cloud SDK
==> Artifacts
google-cloud-sdk/install.sh (Installer)
google-cloud-sdk/bin/bq (Binary)
google-cloud-sdk/bin/docker-credential-gcloud (Binary)
google-cloud-sdk/bin/gcloud (Binary)
google-cloud-sdk/bin/git-credential-gcloud.sh (Binary)
google-cloud-sdk/bin/gsutil (Binary)
==> Caveats
google-cloud-sdk is installed at /usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk. Add your profile:

  for bash users
    source '/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.bash.inc'
    source '/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.bash.inc'

  for zsh users
    source '/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.zsh.inc'
    source '/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.zsh.inc'

あとは Conveats の記述に従って .bashrc (タブ補完は対話実行に関わる設定だから .bash_profile じゃなくて.bashc ですね。毎回迷う。)を設定すればOKです。

...なんで awsclibrew なのに、 gcloudbrew cask なんだろう...?