-
Notifications
You must be signed in to change notification settings - Fork 28
Expand file tree
/
Copy pathCHANGELOG
More file actions
341 lines (249 loc) · 13.1 KB
/
CHANGELOG
File metadata and controls
341 lines (249 loc) · 13.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
*1.2.0* (April 01, 2026)
It was time to modernize bash.env. After looking at what Bash-it, Oh My Bash,
and other frameworks offer, I decided to close the feature gaps while keeping
what makes bash.env unique — the cascading load system, lazy loading, and lean
design. This release brings bash.env up to par with the big frameworks without
the bloat.
CLI Management:
* Added `bash.env enable/disable <plugin>` to manage plugins without editing .bashrc
* Added `bash.env search [term]` to discover plugins and themes with status
* Added `bash.env preview [theme]` with simulated real-world prompt rendering
* Added `bash.env doctor` for diagnostics and health checks
* Added `bash.env set_theme <theme>` to change themes via CLI
* Added `bash.env reload` to reload the environment
* Added `bash.env profile save|load|list|delete <name>` for config snapshots
* Added tab completions for all bash.env subcommands with context-aware suggestions
Configuration:
* Added ~/.bash.env.conf for managed plugin/theme state (optional, overrides .bashrc)
New Plugins:
* `command_duration` - Display execution time for long-running commands (configurable threshold)
* `extract` - Universal archive extraction (tar, zip, 7z, rar, xz, zst, etc.)
* `colored_man_pages` - Colorized man page output via LESS_TERMCAP
* `sudo` - Press Esc+Esc to prepend sudo to current command
* `direnv` - Auto-hook direnv if installed
* `zoxide` - Auto-init zoxide (smarter cd) if installed
Completions:
* Added lazy-loaded dynamic completions for: docker, kubectl, helm, terraform,
npm, pip, cargo, rustup, gh, minikube, kind, AWS CLI, and gcloud
* Zero startup cost — completions load on first tab-complete per tool
Standards & Quality:
* Added NO_COLOR support (https://no-color.org/) in themes
* Added structured logging via `dot_env_log()` with error/warn/info/debug levels
* Added Bats test suite with tests for plugins, themes, functions, and CLI
* Added `rake test` and `rake lint` (ShellCheck) tasks
Bug Fixes:
* Fixed PATH duplication in rbenv and pyenv plugins caused by init adding shims
to PATH before pathmunge could deduplicate
*1.1.2* (January 05, 2026)
* 1. Store paths before function definitions - Binary/script paths are stored in variables (_PYENV_BIN, _NVM_SCRIPT, etc.) before any wrapper functions are defined
2. Explicit function definitions - Replaced eval loops with explicit function definitions for each command
3. Unset ALL wrappers first - Each wrapper function unsets ALL related wrapper functions as its first action, before calling the load function
4. Use stored paths - The load function uses stored paths instead of command lookups to avoid function resolution issues
*1.1.1* (December 31, 2025)
* os/Darwin/alias.sh - Complete rewrite:
| Removed (Deprecated) | Reason |
|------------------------------------|--------------------------------------|
| repairpermissions | Removed in macOS 10.11 El Capitan |
| lookupd -d | Replaced by dscacheutil in 10.5 |
| disableDashboard/enableDashboard | Dashboard removed in Catalina |
| startFileSharing (AppleFileServer) | AFP deprecated, SMB is default |
| herr (Apache logs) | Apache not enabled by default |
| vsdbutil | Deprecated disk utility |
| airportMtu (hardcoded en1) | Interface names vary |
| cleanup_favicons | Safari path changed |
| Hardcoded en1 references | Modern Macs use different interfaces |
| Added/Modernized | Description |
|-----------------------------------|------------------------------------------------------------------|
| pstree | Auto-detects Intel (/usr/local) or Apple Silicon (/opt/homebrew) |
| diskwho | Falls back to fs_usage if iotop not installed |
| airport | Checks multiple framework paths |
| ip_info | Auto-detects primary network interface |
| localip/publicip | Show IP addresses |
| flushdns | Modern DNS cache flush command |
| pkt_trace | Uses $(...) syntax, auto-detects interface |
| consoleapp | Uses open -a instead of hardcoded path |
| syspreferences | Supports both "System Preferences" and "System Settings" |
| software_update/software_check | Simplified software update |
| finderShowHidden/finderHideHidden | Uses -bool true/false + auto-restart |
| dsstore_network_off/on | Control .DS_Store on network volumes |
| pbp/pbc | Clipboard shortcuts |
| displaysleep/nosleep/battery | Power management |
plugins/homebrew/homebrew.plugin.sh:
- Removed obsolete HOMEBREW_CASK_OPTS
- Added Apple Silicon and Intel path detection
- Added brewup, brewinfo, brewsearch, brewdeps aliases
plugins/brew/brew.plugin.sh:
- Removed deprecated brew cask commands
- Added modern cask aliases (brewc, brewco, brewcu)
- Added cleanup aliases
plugins/pyenv/pyenv.plugin.sh:
- Fixed GitHub URL (yyuu/pyenv → pyenv/pyenv)
- Added Homebrew installation detection
- Added pyenv-virtualenv support
plugins/golang/_golang.sh:
- Uses $HOME/go as default GOPATH (Go modules standard)
- Auto-detects Homebrew paths for Intel and Apple Silicon
- Falls back to standard /usr/local/go installation
*
* Version Manager Plugins Updated
| Plugin | Lazy-loaded Commands | Disable Variable |
|--------|-------------------------------------------------------------|------------------|
| nvm | nvm, node, npm, npx, yarn, pnpm, corepack | NVM_LAZY=0 |
| rbenv | rbenv, ruby, gem, bundle, bundler, irb, rake, rails, rspec | RBENV_LAZY=0 |
| pyenv | pyenv, python, python3, pip, pip3, python2, pip2, pydoc | PYENV_LAZY=0 |
| chruby | chruby, ruby, gem, bundle, bundler, irb, rake, rails, rspec | CHRUBY_LAZY=0 |
How It Works
- On shell startup, lightweight wrapper functions are created for each command
- When you first run any of these commands, the wrapper:
a. Removes all wrapper functions
b. Loads the real version manager
c. Executes your command
- Subsequent calls go directly to the real commands
Other Plugin Fixes
| Plugin | Changes |
|------------|--------------------------------------------------------------|
| autojump | Fixed backticks, added Linux path support, fixed jp alias |
| nodejs | Added dynamic npm prefix detection, added npmg/npmup aliases |
| nvm README | Updated documentation with lazy loading instructions |
| CLAUDE.md | Added lazy loading docs and code style guide |
*1.0.3* (November 27, 2021)
* Include .git directory on propagate_env_to_host
* Fix the `load_on_login` function to more accurately check if the .bashrc file is configured to load bash.env on login.
*1.0.1* (March 22, 2016)
* Add Atom editor to the list of editors to automatcially search for when one is not specified.
* Add `cleanmarks` function to the `jump` plugin to remove jump links that point to missing subdirectories. Switch `marks` function definition based on the current OS (Darwin vs others).
* Clarify how to propagate a local Bash.env to a remote system.
*1.0.0* (March 21, 2016)
* Rename the project from .env to bash.env.
* Add global `reloadenv` alias
* Rename alias for loading the bash.env environment from `ees` to `bashenv`
* Add `awscli` plugin
* Add `docker` plugin
* Various fixes to plugins
* Change `sparkr` theme to work better on all environments
* README updates
*0.4.3* (October 22, 2014)
* Exclude the large elocatedb file when propagating Bash.env to a remote host.
* Update add_ssh_key_to_host shell function to better handle different or missing keys.
*0.4.2* (July 30, 2014)
* Add the 'chruby' plugin
*0.4.1* (July 24, 2014)
* Remove some non-public plugins
* Refactor some code
*0.4.0* (July 24, 2014)
* Renamed to bash.env as '.env' or 'Dotenv' is a rubygem
* Consolidated and updated `bash.env` command script
* Updated README.md
* Remove GIT_EDITOR from editor.plugin.sh as that overrides ~/.gitconfig, which we don't want
* Updated the GOPATH for the golang plugin
* Added the 'jump' plugin
* Added an updated 'rails' plugin
*0.3.14* (August 27, 2013)
* Added elocate plugin for braindead Solaris machines et. al.
* Added Bash 'ask' function
* Updated the pinkbox plugin - Only FLA devs care.
* Moved some aliases around
*0.3.13* (July 31, 2013)
* Moved 2 more functions into global_functions.sh
* A few plugin updates
* Fixed locale problems
*0.3.12* (June 20, 2013)
* Default LANG and LC_ALL to use utf-8
* Updated Transwarp theme
* Added some aliases for tmux plugin
* Fix a path issue in the rbenv plugin
* Added Autojump plugin
* Added nodejs plugin
* Add /usr/local/sbin to the Solaris path by default
*0.3.11* (April 16, 2013)
* Added help for pinkbox plugin
* Added nesta and ag plugins
* Fixed a few bugs
* Added bigfind as Linux alias
*0.3.10* (August 24, 2012)
* added colors to output, update_code method adjusted.
* use env variable instead of 'hostname' command
* fixed the bigfind function
*0.3.9* (August 24, 2012)
* Fixed sparkr theme for Solaris, rvm and rbenv issues fixed
*0.3.8* (August 17, 2012)
* Added pinkbox plugin for FLA work
* Fixed some Solaris issues
* Fixed the try_theme function
* Added bin/colortest.sh for testing colors
*0.3.7* (April 23, 2012)
* Added ./bin/check_path_dups.rb to check for duplicate paths
* Changed auto update to require ENABLE_AUTO_UPDATE to be set
* Added an alternative bigfind method for finding large files
* Fixed some bugs in the completion plugin
* Make pathmunge function more Solaris friendly
*0.3.6* (March 29, 2012)
* Changed order of auto update to avoid it on Solaris machines
* Fix the rvm-prompt so it doesn't display an error on machines without RVM
*0.3.5* (March 15, 2012)
* Fix incorrect filename call during update
*0.3.4* (March 12, 2012)
* Fixed a recursion bug when no theme was defined in .bashrc
* Fixed single-bracket conditionals
*0.3.3* (March 12, 2012)
* Fixed automatic updates
* Moved plugins and theme sourcing out of global
* Added some more useful global functions
* Added minimalist theme
* Updated theme color functions
*0.3.2* (March 08, 2012)
* Moved various bits from global into their own plugins
* Added automatic updates (shamelessly stolen from oh-my-zsh)
* Miscellaneous fixes and updates
* Fixed Rakefile 'bump' task problem where Ruby 1.9.3 File.readlines changed behavior
*0.3.1* (March 07, 2012)
* Added .bashrc example to README.md
*0.3.0* (March 7, 2011)
* Added plugin support
* More obvious theme integration (thanks to oh-my-zsh)
* Fixed various bugs
*0.2.3* (October 28, 2011)
* Added some useful scripts for OSX
* Modified some aliases
* Added some chmod aliases
* Added some Darwin and global functions
*0.2.2* (October 06, 2011)
* Fixed soft-link to default theme
*0.2.1* (October 06, 2011)
* Changed default theme to sparkr
* Added git-flow Bash completion
* Update some globals and aliases
*0.2.0* (September 14, 2011)
* Added theme support
* Moved bash-completion to the extra folder
* Updated some documentation
*0.1.10* (September 08, 2011)
* Modified the configthis.env function to use documented examples for customization
*0.1.9* (September 08, 2011)
* Updated bump task to emit version into README
*0.1.8* (September 05, 2011)
* Added alias for ruby pry
* Added some prompt functions from Wayne's RVM project
* Cleaned up some code
* Added .rvmrc
*0.1.7* (August 30, 2011)
* Added the load_on_login and load_on_alias functions
* Updated README
* Removed double-nested alias inside the rails.sh file
*0.1.6* (August 29, 2011)
* Reworked aliases by moving most of them to globals in a new hierarchy and tweaked the SunOS prompt
* Updated the Rakefile to open the CHANGELOG after raking 'changes'
* Changed the accidental commit message
*0.1.5* (August 26, 2011)
* Added the `confighost.env` function for easy config of remote hosts
*0.1.4* (August 26, 2011)
* Got rid of the tput stuff because it doesn't work on certain versions of Solaris
* Added more detail to the customization section of the README
* Added a `.gitignore` file to the `host` directory and removed my own customized host files
*0.1.3* (August 25, 2011)
* Added Rakefile and several Rake tasks to help in releasing new versions
* Added readline support for 'rake changes'
* Renamed global function from 'config.env' to 'configthis.env'
*0.1.2* (August 25, 2011)
* Began keeping CHANGELOG entries
* Fixed color support for prompts with horizontal scrolling problem