mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-06-25 18:40:51 +00:00
[Vendor] update go-swagger v0.21.0 -> v0.25.0 (#12670)
* Update go-swagger * vendor
This commit is contained in:
parent
66843f2237
commit
3270e7a443
350 changed files with 26353 additions and 5552 deletions
131
vendor/github.com/subosito/gotenv/README.md
generated
vendored
Normal file
131
vendor/github.com/subosito/gotenv/README.md
generated
vendored
Normal file
|
@ -0,0 +1,131 @@
|
|||
# gotenv
|
||||
|
||||
[](https://travis-ci.org/subosito/gotenv)
|
||||
[](https://ci.appveyor.com/project/subosito/gotenv/branch/master)
|
||||
[](https://codecov.io/gh/subosito/gotenv)
|
||||
[](https://goreportcard.com/report/github.com/subosito/gotenv)
|
||||
[](https://godoc.org/github.com/subosito/gotenv)
|
||||
|
||||
Load environment variables dynamically in Go.
|
||||
|
||||
## Usage
|
||||
|
||||
Put the gotenv package on your `import` statement:
|
||||
|
||||
```go
|
||||
import "github.com/subosito/gotenv"
|
||||
```
|
||||
|
||||
To modify your app environment variables, `gotenv` expose 2 main functions:
|
||||
|
||||
- `gotenv.Load`
|
||||
- `gotenv.Apply`
|
||||
|
||||
By default, `gotenv.Load` will look for a file called `.env` in the current working directory.
|
||||
|
||||
Behind the scene, it will then load `.env` file and export the valid variables to the environment variables. Make sure you call the method as soon as possible to ensure it loads all variables, say, put it on `init()` function.
|
||||
|
||||
Once loaded you can use `os.Getenv()` to get the value of the variable.
|
||||
|
||||
Let's say you have `.env` file:
|
||||
|
||||
```
|
||||
APP_ID=1234567
|
||||
APP_SECRET=abcdef
|
||||
```
|
||||
|
||||
Here's the example of your app:
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/subosito/gotenv"
|
||||
"log"
|
||||
"os"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gotenv.Load()
|
||||
}
|
||||
|
||||
func main() {
|
||||
log.Println(os.Getenv("APP_ID")) // "1234567"
|
||||
log.Println(os.Getenv("APP_SECRET")) // "abcdef"
|
||||
}
|
||||
```
|
||||
|
||||
You can also load other than `.env` file if you wish. Just supply filenames when calling `Load()`. It will load them in order and the first value set for a variable will win.:
|
||||
|
||||
```go
|
||||
gotenv.Load(".env.production", "credentials")
|
||||
```
|
||||
|
||||
While `gotenv.Load` loads entries from `.env` file, `gotenv.Apply` allows you to use any `io.Reader`:
|
||||
|
||||
```go
|
||||
gotenv.Apply(strings.NewReader("APP_ID=1234567"))
|
||||
|
||||
log.Println(os.Getenv("APP_ID"))
|
||||
// Output: "1234567"
|
||||
```
|
||||
|
||||
Both `gotenv.Load` and `gotenv.Apply` **DO NOT** overrides existing environment variables. If you want to override existing ones, you can see section below.
|
||||
|
||||
### Environment Overrides
|
||||
|
||||
Besides above functions, `gotenv` also provides another functions that overrides existing:
|
||||
|
||||
- `gotenv.OverLoad`
|
||||
- `gotenv.OverApply`
|
||||
|
||||
|
||||
Here's the example of this overrides behavior:
|
||||
|
||||
```go
|
||||
os.Setenv("HELLO", "world")
|
||||
|
||||
// NOTE: using Apply existing value will be reserved
|
||||
gotenv.Apply(strings.NewReader("HELLO=universe"))
|
||||
fmt.Println(os.Getenv("HELLO"))
|
||||
// Output: "world"
|
||||
|
||||
// NOTE: using OverApply existing value will be overridden
|
||||
gotenv.OverApply(strings.NewReader("HELLO=universe"))
|
||||
fmt.Println(os.Getenv("HELLO"))
|
||||
// Output: "universe"
|
||||
```
|
||||
|
||||
### Throw a Panic
|
||||
|
||||
Both `gotenv.Load` and `gotenv.OverLoad` returns an error on something wrong occurred, like your env file is not exist, and so on. To make it easier to use, `gotenv` also provides `gotenv.Must` helper, to let it panic when an error returned.
|
||||
|
||||
```go
|
||||
err := gotenv.Load(".env-is-not-exist")
|
||||
fmt.Println("error", err)
|
||||
// error: open .env-is-not-exist: no such file or directory
|
||||
|
||||
gotenv.Must(gotenv.Load, ".env-is-not-exist")
|
||||
// it will throw a panic
|
||||
// panic: open .env-is-not-exist: no such file or directory
|
||||
```
|
||||
|
||||
### Another Scenario
|
||||
|
||||
Just in case you want to parse environment variables from any `io.Reader`, gotenv keeps its `Parse` and `StrictParse` function as public API so you can use that.
|
||||
|
||||
```go
|
||||
// import "strings"
|
||||
|
||||
pairs := gotenv.Parse(strings.NewReader("FOO=test\nBAR=$FOO"))
|
||||
// gotenv.Env{"FOO": "test", "BAR": "test"}
|
||||
|
||||
err, pairs = gotenv.StrictParse(strings.NewReader(`FOO="bar"`))
|
||||
// gotenv.Env{"FOO": "bar"}
|
||||
```
|
||||
|
||||
`Parse` ignores invalid lines and returns `Env` of valid environment variables, while `StrictParse` returns an error for invalid lines.
|
||||
|
||||
## Notes
|
||||
|
||||
The gotenv package is a Go port of [`dotenv`](https://github.com/bkeepers/dotenv) project with some additions made for Go. For general features, it aims to be compatible as close as possible.
|
Loading…
Add table
Add a link
Reference in a new issue