cli
cli copied to clipboard
Broken autocomplete when installing CLI with homebrew on Linux
Bug report
What is the current behavior?
The autocomplete is broken installing with homebrew on linux.
Steps to reproduce it
- brew tap heroku/brew && brew install heroku
- heroku
It will show up a grep error message saying the file $HOME/Library/Caches/heroku/autocomplete/commands
, which acctually don't.
What is the expected behavior?
It shoud autocomplete with options.
workaround
In the file /home/linuxbrew/.linuxbrew/share/zsh/site-functions/_heroku
edit this two follow env vars.
### Keep in sync with zsh shim
HEROKU_AC_ANALYTICS_DIR=$HOME/Library/Caches/heroku/autocomplete/completion_analytics;
HEROKU_AC_COMMANDS_PATH=$HOME/Library/Caches/heroku/autocomplete/commands;
Set it as bellow.
### Keep in sync with zsh shim
HEROKU_AC_ANALYTICS_DIR=$HOME/.cache/heroku/autocomplete/completion_analytics;
HEROKU_AC_COMMANDS_PATH=$HOME/.cache/heroku/autocomplete/commands;
I belive the path are set to MacOS folders installations. So, check for OSTYPE could fix the problem.
case "$OSTYPE" in
linux-gnu)
HEROKU_AC_ANALYTICS_DIR=$HOME/.cache/heroku/autocomplete/completion_analytics;
HEROKU_AC_COMMANDS_PATH=$HOME/.cache/heroku/autocomplete/commands;
;;
darwin)
HEROKU_AC_ANALYTICS_DIR=$HOME/Library/Caches/heroku/autocomplete/completion_analytics;
HEROKU_AC_COMMANDS_PATH=$HOME/Library/Caches/heroku/autocomplete/commands;
;;
esac
Heroku version: heroku/8.11.4 linux-x64 node-v16.20.2
SO: Ubuntu 22.04
Proxy: No proxy
Hello @srcid. Thanks for this report. Can you confirm your Linux distro and shell? I wasn't able to reproduce on Fedora / Bash, but reading through the issue I believe this might be a problem that effects only ZSH shell.
Hi @sbosio. Thank you for answering. I'm using Ubuntu 22.04 and ZSH as my main shell. I didn't test with bash because I don't think it could be related with the shell.
Thanks for the confirmation. I will create a work item for the team to address this installation bug under ZSH.
GUS Work Item for tracking purposes (Heroku internal).