Releases: LucasPickering/env-select
Releases · LucasPickering/env-select
1.1.3 - 2024-02-13
Release Notes
- Escape single quotes in variable names/values (#65)
- Preserve quotes in command arguments passed to
es run
(#72)
Install env-select 1.1.3
Install prebuilt binaries via Homebrew
brew install LucasPickering/homebrew-tap/env-select
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/LucasPickering/env-select/releases/download/v1.1.3/env-select-installer.sh | sh
Download env-select 1.1.3
1.1.2 - 2024-02-11
Release Notes
Changed
- Fix some typos in docs and warning messages (oops)
Install env-select 1.1.2
Install prebuilt binaries via Homebrew
brew install LucasPickering/homebrew-tap/env-select
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/LucasPickering/env-select/releases/download/v1.1.2/env-select-installer.sh | sh
Download env-select 1.1.2
1.1.1 - 2024-02-11
Release Notes
Changed
es set
subcommand no longer requires --source-file
arg
- The intention is to make the command useful even without the wrapping function (and to provide helpful hint output)
- Rename binary from
env-select
to es
- I'm not considering this a breaking change, because running the binary directly was not considered a supported use case.
Install env-select 1.1.1
Install prebuilt binaries via Homebrew
brew install LucasPickering/homebrew-tap/env-select
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/LucasPickering/env-select/releases/download/v1.1.1/env-select-installer.sh | sh
Download env-select 1.1.1
1.1.0 - 2024-02-09
Release Notes
Added
- Pass a list of strings to
multiple
to filter which values are loaded from a mapping
Changed
- Resolve values in parallel
- This means profile resolution will only take as long as the slowest step, rather than the sum of all steps
Install env-select 1.1.0
Install prebuilt binaries via Homebrew
brew install LucasPickering/homebrew-tap/env-select
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/LucasPickering/env-select/releases/download/v1.1.0/env-select-installer.sh | sh
Download env-select 1.1.0
1.0.0 - 2024-02-02
Release Notes
Added
Changed
- Use
es
instead of env-select
in CLI help output
es show config
now accepts optional arguments to print for a single application or profile
Install env-select 1.0.0
Install prebuilt binaries via Homebrew
brew install LucasPickering/homebrew-tap/env-select
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/LucasPickering/env-select/releases/download/v1.0.0/env-select-installer.sh | sh
Download env-select 1.0.0
v0.11.0
Breaking Changes
- Remove the concept of native commands
- The
command
value source is effectively gone, and the shell
value source type has to renamed to command
to replace the old one
- In other words, the
shell
type is gone and the command
field for the command
type now takes a string instead of a string[]
- Side effects can now only be shell commands (string literals)
- This is to reduce the overall complexity of the tool. I don't thi
nk there's a strong use case for native commands, where you can't just use shell commands
New Features
- Add
cwd
option to command
value source type, to force the command to execute in a particular directory
- Modifications to the
PATH
variable will be prepended to the existing value, rather than replacing it
- This special behavior is based on the variable name, and only applies to
PATH
v0.10.0
Breaking Changes
- Cascading config files are now only merged down to the profile level
New Features
- Added side effects. See usage docs for more. Imperative environment configuration!
Other
- Sourceable output from
es set
is now written to a temporary file instead of stdout. This difference is handled by the shell functions, so no change to behavior for users
v0.9.0
Breaking Changes
es show
is now broken into sub-subcommands: es show config
and es show shell
- Unknown keys in config will now be rejected
New Features
- Add
--run-in-shell
flag to es run
es run
and es set
no longer require an application name in the command; if not given, they will prompt, the same way they prompt for profile name
Other
- Provide more context if the subprocess in
es run
fails
v0.8.0
New Features
- Load multiple values from a single source with the
multiple
flag
- Supported for all value source types
file
value source, which loads value(s) from a file path (combine with multiple = true
for maximum fun!)
- Support non-string primitives for simple literal values
- E.g.
VARIABLE1 = 123
or VARIABLE2 = false
- These values will simply be stringified before export, since shells only understand strings anyway
Other
v0.7.0
This should be the last release with major breaking changes. The config layout has changed dramatically in order to support planned (and unplanned) future features.
Breaking Changes
- Removed
vars
config section. You can no longer provide mappings for single variables. Instead, define a set of profiles with single variables
- This feature didn't provide any additional functionality, it was just a slight convenience at the cost of complexity both for users and code
- Restructured profile config:
- Renamed
apps
field to applications
- Add new
profiles
and variables
subfields
- Overall, this means
apps.app1.profile1.VARIABLE1
will now be applications.app1.profiles.profile1.variables.VARIABLE1
- This is more tedious, but allows for current and future features to fit into the config
New Features
- Profile inheritance - profiles can now extend other profiles, eliminating the need to copy-paste a bunch of common content between profiles
Other
es
shell function definitions now use the full path to the env-select
binary rather than relying on PATH
- This eliminates the need to add
env-select
to the PATH
, and also guarantees that the copy of env-select
that is being executed by es
is the one that generated that es
definition in the first place