diff --git a/Library/Homebrew/cmd/shellenv.rb b/Library/Homebrew/cmd/shellenv.rb new file mode 100644 index 0000000000..25a6c8114f --- /dev/null +++ b/Library/Homebrew/cmd/shellenv.rb @@ -0,0 +1,16 @@ +#: * `shellenv`: +#: Prints export statements - run them in a shell and this installation of +#: Homebrew will be included into your PATH, MANPATH, and INFOPATH. +#: Tip: have your dotfiles eval the output of this command + +module Homebrew + module_function + + def shellenv + puts <<~EOS + export PATH="#{HOMEBREW_PREFIX}/bin:#{HOMEBREW_PREFIX}/sbin:$PATH" + export MANPATH="#{HOMEBREW_PREFIX}/share/man:$MANPATH" + export INFOPATH="#{HOMEBREW_PREFIX}/share/info:$INFOPATH" + EOS + end +end diff --git a/Library/Homebrew/test/cmd/shellenv_spec.rb b/Library/Homebrew/test/cmd/shellenv_spec.rb new file mode 100644 index 0000000000..7297efb154 --- /dev/null +++ b/Library/Homebrew/test/cmd/shellenv_spec.rb @@ -0,0 +1,8 @@ +describe "brew shellenv", :integration_test do + it "doesn't fail" do + expect { brew "shellenv" } + .to output(%r{#{HOMEBREW_PREFIX}/bin}).to_stdout + .and not_to_output.to_stderr + .and be_a_success + end +end diff --git a/docs/Manpage.md b/docs/Manpage.md index e329e0f321..659e2faeff 100644 --- a/docs/Manpage.md +++ b/docs/Manpage.md @@ -441,6 +441,11 @@ With `--verbose` or `-v`, many commands print extra debugging information. Note If `--env=std` is passed, use the standard `PATH` instead of superenv's. + * `shellenv`: + Prints export statements - run them in a shell and this installation of + Homebrew will be included into your PATH, MANPATH, and INFOPATH. + Tip: have your dotfiles eval the output of this command + * `style` [`--fix`] [`--display-cop-names`] [`--only-cops=``cops`|`--except-cops=``cops`] [`files`|`taps`|`formulae`]: Check formulae or files for conformance to Homebrew style guidelines. diff --git a/manpages/brew.1 b/manpages/brew.1 index 1459d9377b..cf3e113fc2 100644 --- a/manpages/brew.1 +++ b/manpages/brew.1 @@ -404,6 +404,9 @@ If \fB\-\-desc\fR is passed, search formulae with a description matching \fItext If \fB\-\-env=std\fR is passed, use the standard \fBPATH\fR instead of superenv\'s\. . .IP "\(bu" 4 +\fBshellenv\fR: Prints export statements \- run them in a shell and this installation of Homebrew will be included into your PATH, MANPATH, and INFOPATH\. Tip: have your dotfiles eval the output of this command +. +.IP "\(bu" 4 \fBstyle\fR [\fB\-\-fix\fR] [\fB\-\-display\-cop\-names\fR] [\fB\-\-only\-cops=\fR\fIcops\fR|\fB\-\-except\-cops=\fR\fIcops\fR] [\fIfiles\fR|\fItaps\fR|\fIformulae\fR]: Check formulae or files for conformance to Homebrew style guidelines\. . .IP