Skip to content

Add Homebrew's shell environment to xonsh shell on macOS/Linux

License

Notifications You must be signed in to change notification settings

eugenesvk/xontrib-homebrew

Repository files navigation

Add Homebrew's shell environment to xonsh shell on macOS/Linux
(alternative to shellenv).

If you like the idea click ⭐ on the repo and tweet. This might also accelerate adding xonsh support to Homebrew.

Introduction

Homebrew has a shellenv command to add its environment to your shell: it adds a few environment variables (HOMEBREW_ PREFIX/CELLAR/REPOSITORY) and updates a few paths (MAN/INFO/ PATH).

This xontrib automatically translates the default bash export statements of shellenv into xonsh.

Installation

To install use pip:

xpip install xontrib-homebrew
# or: xpip install -U git+https://github.com/eugenesvk/xontrib-homebrew

This xontrib will get loaded automatically for interactive sessions; to stop this, set

$XONTRIBS_AUTOLOAD_DISABLED = {"homebrew", }

Usage

Add this to your xonsh run control file (~/.xonshrc or ~/.config/rc.xsh):

xontrib load homebrew

Set custom Homebrew installation path via $XONTRIB_HOMEBREW_PATHBREW to /full/path/to/bin/brew if it's not installed at these default paths (which always take precedence):

macOS Linux
/usr/local/bin/brew /home/linuxbrew/.linuxbrew/bin/brew
/opt/homebrew/bin/brew ~/.linuxbrew/bin/brew

Set the level of verbosity via $XONTRIB_HOMEBREW_LOGLEVEL to 0–3 (default 1):

  • 0 print nothing (fail silently)
  • 1 print errors (e.g. can't find brew at default locations)
  • 2 print warnings (e.g issues when parsing shellenv)
  • 3 print more verbose messages

Known issues

  • Xontrib autoload currently can't be disabled due to a xonsh bug, so if you need precise control over when your environment variables are set (e.g., whether /path/to/homebrew/bin is at the top of PATH), try installing from a deauto branch:
    xpip install -U git+https://github.com/eugenesvk/xontrib-homebrew@deauto
  • Likely due to the same bug your $XONTRIB_HOMEBREW_PATHBREW and $XONTRIB_HOMEBREW_LOGLEVEL env vars might be ignored in the autoloaded version, so install the @deauto version mentioned above

Credits

This package was created with xontrib cookiecutter template.