https://github.com/drone/envsubst
Go package emulates bash environment variable substitution
https://github.com/drone/envsubst
Last synced: 5 months ago
JSON representation
Go package emulates bash environment variable substitution
- Host: GitHub
- URL: https://github.com/drone/envsubst
- Owner: drone
- License: mit
- Created: 2017-01-16T09:35:52.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-05-30T14:06:41.000Z (about 2 years ago)
- Last Synced: 2024-11-17T12:50:55.399Z (over 1 year ago)
- Language: Go
- Homepage:
- Size: 63.5 KB
- Stars: 273
- Watchers: 6
- Forks: 54
- Open Issues: 4
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# envsubst
`envsubst` is a Go package for expanding variables in a string using `${var}` syntax.
Includes support for bash string replacement functions.
## Documentation
[Documentation can be found on GoDoc][doc].
## Supported Functions
| __Expression__ | __Meaning__ |
| ----------------- | -------------- |
| `${var}` | Value of `$var`
| `${#var}` | String length of `$var`
| `${var^}` | Uppercase first character of `$var`
| `${var^^}` | Uppercase all characters in `$var`
| `${var,}` | Lowercase first character of `$var`
| `${var,,}` | Lowercase all characters in `$var`
| `${var:n}` | Offset `$var` `n` characters from start
| `${var:n:len}` | Offset `$var` `n` characters with max length of `len`
| `${var#pattern}` | Strip shortest `pattern` match from start
| `${var##pattern}` | Strip longest `pattern` match from start
| `${var%pattern}` | Strip shortest `pattern` match from end
| `${var%%pattern}` | Strip longest `pattern` match from end
| `${var-default` | If `$var` is not set, evaluate expression as `$default`
| `${var:-default` | If `$var` is not set or is empty, evaluate expression as `$default`
| `${var=default` | If `$var` is not set, evaluate expression as `$default`
| `${var:=default` | If `$var` is not set or is empty, evaluate expression as `$default`
| `${var/pattern/replacement}` | Replace as few `pattern` matches as possible with `replacement`
| `${var//pattern/replacement}` | Replace as many `pattern` matches as possible with `replacement`
| `${var/#pattern/replacement}` | Replace `pattern` match with `replacement` from `$var` start
| `${var/%pattern/replacement}` | Replace `pattern` match with `replacement` from `$var` end
For a deeper reference, see [bash-hackers](https://wiki.bash-hackers.org/syntax/pe#case_modification) or [gnu pattern matching](https://www.gnu.org/software/bash/manual/html_node/Pattern-Matching.html).
## Unsupported Functions
* `${var-default}`
* `${var+default}`
* `${var:?default}`
* `${var:+default}`
[doc]: http://godoc.org/github.com/drone/envsubst