Comments (4)
brew shellenv
is designed to work for 95% of our users. In its current form, it does that.
I don't think there is a way to make the changes you propose without either a) breaking shellenv
for a significant proportion of the 95%, or b) making the code significantly more complex than it's worth making shellenv
more useful to another 2-3% of users.
For your use case, I suggest sticking with the code you've already written to add Homebrew to PATH
, MANPATH
, etc instead of using shellenv
.
However, if in fact there is a simple way to update shellenv
without breaking it for any existing users, please open a pull request instead.
from brew.
Delete
PATH
,MANPATH
, andINFOPATH
in the defaultshellenv.sh
.
brew
should only handle its own private variables, such asHOMEBREW_PREFIX
,
This is not going to happen. It will break the setup for everyone who relies on this.
For example, avoid duplication or sequencing.
We intentionally are willing to accept duplication here (it does no harm) to ensure that the sequencing is correct (so that bin/brew
and brew
installed bin
s and sbin
s are at the front of the various *PATH
.
from brew.
This is not going to happen. It will break the setup for everyone who relies on this.
I think good design should be able to separate private and public parts.
brew_env() {
set_brew_private_env
set_public_env
}
Equal:
set_brew_private_env && set_public_env
This makes it easier to combine other programs. And can be called multiple times safely.
set_brew_private_env && set_brew_public_env
set_brew_public_env && more_process_a
set_brew_private_env && more_process_b
We intentionally are willing to accept duplication here (it does no harm) to ensure that the sequencing is correct (so that bin/brew and brew installed bins and sbins are at the front of the various *PATH.
We got a clean path handling.
PATH = user_path:brew_path:sys_path
OR
clean_path_handle() {
addToPath user_path
addToPath brew_path
addToPath sys_path
}
from brew.
I think good design should be able to separate private and public parts.
I think the design is good already. Regardless: we cannot make backwards incompatible changes, like you're proposing.
from brew.
Related Issues (20)
- `HOMEBREW_GITHUB_API_TOKEN` doesn't apply for call to `https://api.github.com/repos/org/name/releases/latest` HOT 2
- Homebrew formula has linkage issue on Apple silicon setup for python application with selenium as dependency HOT 5
- Support user set BUNDLE_USER_CACHE HOT 14
- Consider getting superenv from `/etc/profile` and `/etc/environment` HOT 5
- SBOMs break bottle reproducibility HOT 15
- Improve caveats handling for API installs HOT 8
- Migration to other tap broken HOT 9
- Replace PAT usage with GitHub App Tokens HOT 1
- Use `main` for Homebrew branches HOT 3
- Use Sorbet `typed: strict` in all (non-package) files in Homebrew organisation
- Attestation failure message emits secret HOT 1
- Spurious linkage errors to GCC on Linux HOT 7
- Formula should be able to depend on cask HOT 2
- HOMEBREW_NO_INSTALL_FROM_API not working for dependencies with bottle HOT 3
- HEAD-only formulae can no longer be installed HOT 1
- Can't find socket when using emacsclient as homebrew editor HOT 10
- Brew commands autocomplete doesn't work HOT 5
- Reinstall happening even when downloaded artifact is the same HOT 8
- "arrow" cli output is weird with ligatures enabled HOT 1
- WTF! HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from brew.