mirror of
https://github.com/toddbluhm/env-cmd.git
synced 2025-12-08 18:23:33 +00:00
feat: allow bracers when processing vars
This commit is contained in:
parent
6eacc1afcf
commit
e5d3a27a54
@ -4,12 +4,13 @@
|
||||
|
||||
- **Upgrade**: Upgraded dependency `commander` to `5.x`
|
||||
- **Upgrade**: Upgraded devDependencies `ts-standard`, `sinon`
|
||||
- **Feature**: support both `$var` and `${var}` when expanding vars
|
||||
|
||||
## 10.1.0
|
||||
|
||||
- **Feature**: Added support for expanding vars using the `-x` flag.
|
||||
Note: only supports `$var` syntax
|
||||
- **Feature**: Added support for `--silent` flag that ignores env-cmd errors and missing files and
|
||||
- **Feature**: Added support for `--silent` flag that ignores env-cmd errors and missing files and
|
||||
only terminates on caught signals
|
||||
- **Feature**: Added a new `--verbose` flag that prints additional debugging info to `console.info`
|
||||
- **Upgrade**: Upgraded dependency `commander` to `4.x`
|
||||
|
||||
@ -38,11 +38,12 @@
|
||||
],
|
||||
"author": "Todd Bluhm",
|
||||
"contributors": [
|
||||
"Anton Versal <ant.ver@gmail.com>",
|
||||
"Eric Lanehart <eric@pushred.co>",
|
||||
"Jon Scheiding <jonscheiding@gmail.com>",
|
||||
"serapath (Alexander Praetorius) <dev@serapath.de>",
|
||||
"Kyle Hensel <me@kyle.kiwi>",
|
||||
"Anton Versal <ant.ver@gmail.com>"
|
||||
"Nicholas Krul <nicholas.krul@gmail.com>",
|
||||
"serapath (Alexander Praetorius) <dev@serapath.de>"
|
||||
],
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
|
||||
@ -1,13 +1,12 @@
|
||||
import type { Environment } from './types.ts'
|
||||
|
||||
/**
|
||||
* expandEnvs Replaces $var in args and command with environment variables
|
||||
* if the environment variable doesn't exist, it leaves it as is.
|
||||
* expandEnvs Replaces $var and ${var} in args and command with environment variables
|
||||
* the environment variable doesn't exist, it leaves it as is.
|
||||
*/
|
||||
export function expandEnvs(str: string, envs: Environment): string {
|
||||
return str.replace(/(?<!\\)\$[a-zA-Z0-9_]+/g, (varName) => {
|
||||
const varValue = envs[varName.slice(1)]
|
||||
// const test = 42;
|
||||
export function expandEnvs (str: string, envs: Environment): string {
|
||||
return str.replace(/(?<!\\)\$\{?[a-zA-Z0-9_]+\}?/g, (varName) => {
|
||||
const varValue = envs[varName.startsWith('${') ? varName.slice(2, varName.length - 1) : varName.slice(1)]
|
||||
return varValue ?? varName
|
||||
})
|
||||
}
|
||||
|
||||
@ -11,8 +11,8 @@ describe('expandEnvs', (): void => {
|
||||
THANKSFORALLTHEFISH: 42,
|
||||
BRINGATOWEL: true,
|
||||
}
|
||||
const args = ['notvar', '$dollar', '\\$notvar', '-4', '$PING', '$IP1', '\\$IP1', '$NONEXIST']
|
||||
const argsExpanded = ['notvar', 'money', '\\$notvar', '-4', 'PONG', '127.0.0.1', '\\$IP1', '$NONEXIST']
|
||||
const args = ['notvar', '$dollar', '\\$notvar', '-4', '$PING', '$IP1', '\\$IP1', '$NONEXIST', '${PING}', '${NONEXIST}'] /* eslint-disable-line */
|
||||
const argsExpanded = ['notvar', 'money', '\\$notvar', '-4', 'PONG', '127.0.0.1', '\\$IP1', '$NONEXIST', 'PONG', '${NONEXIST}'] /* eslint-disable-line */
|
||||
|
||||
it('should replace environment variables in args', (): void => {
|
||||
const res = args.map(arg => expandEnvs(arg, envs))
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user