mirror of https://github.com/joho/godotenv.git
Rename and implement int-able without quotes
parent
d6ee6871f2
commit
29b5be9cdc
14
README.md
14
README.md
|
@ -1,4 +1,4 @@
|
|||
# GoDotEnv [](https://travis-ci.org/joho/godotenv) [](https://ci.appveyor.com/project/joho/godotenv) [](https://goreportcard.com/report/github.com/joho/godotenv)
|
||||
# GoDotEnv [](https://travis-ci.org/mniak/godotenv) [](https://ci.appveyor.com/project/mniak/godotenv) [](https://goreportcard.com/report/github.com/mniak/godotenv)
|
||||
|
||||
A Go (golang) port of the Ruby dotenv project (which loads env vars from a .env file)
|
||||
|
||||
|
@ -17,12 +17,12 @@ There is test coverage and CI for both linuxish and windows environments, but I
|
|||
As a library
|
||||
|
||||
```shell
|
||||
go get github.com/joho/godotenv
|
||||
go get github.com/mniak/godotenv
|
||||
```
|
||||
|
||||
or if you want to use it as a bin command
|
||||
```shell
|
||||
go get github.com/joho/godotenv/cmd/godotenv
|
||||
go get github.com/mniak/godotenv/cmd/godotenv
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
@ -40,7 +40,7 @@ Then in your Go app you can do something like
|
|||
package main
|
||||
|
||||
import (
|
||||
"github.com/joho/godotenv"
|
||||
"github.com/mniak/godotenv"
|
||||
"log"
|
||||
"os"
|
||||
)
|
||||
|
@ -61,7 +61,7 @@ func main() {
|
|||
If you're even lazier than that, you can just take advantage of the autoload package which will read in `.env` on import
|
||||
|
||||
```go
|
||||
import _ "github.com/joho/godotenv/autoload"
|
||||
import _ "github.com/mniak/godotenv/autoload"
|
||||
```
|
||||
|
||||
While `.env` in the project root is the default, you don't have to be constrained, both examples below are 100% legit
|
||||
|
@ -177,11 +177,11 @@ Contributions are most welcome! The parser itself is pretty stupidly naive and I
|
|||
|
||||
Releases should follow [Semver](http://semver.org/) though the first couple of releases are `v1` and `v1.1`.
|
||||
|
||||
Use [annotated tags for all releases](https://github.com/joho/godotenv/issues/30). Example `git tag -a v1.2.1`
|
||||
Use [annotated tags for all releases](https://github.com/mniak/godotenv/issues/30). Example `git tag -a v1.2.1`
|
||||
|
||||
## CI
|
||||
|
||||
Linux: [](https://travis-ci.org/joho/godotenv) Windows: [](https://ci.appveyor.com/project/joho/godotenv)
|
||||
Linux: [](https://travis-ci.org/mniak/godotenv) Windows: [](https://ci.appveyor.com/project/mniak/godotenv)
|
||||
|
||||
## Who?
|
||||
|
||||
|
|
|
@ -3,12 +3,12 @@ package autoload
|
|||
/*
|
||||
You can just read the .env file on import just by doing
|
||||
|
||||
import _ "github.com/joho/godotenv/autoload"
|
||||
import _ "github.com/mniak/godotenv/autoload"
|
||||
|
||||
And bob's your mother's brother
|
||||
*/
|
||||
|
||||
import "github.com/joho/godotenv"
|
||||
import "github.com/mniak/godotenv"
|
||||
|
||||
func init() {
|
||||
godotenv.Load()
|
||||
|
|
|
@ -7,7 +7,7 @@ import (
|
|||
|
||||
"strings"
|
||||
|
||||
"github.com/joho/godotenv"
|
||||
"github.com/mniak/godotenv"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Package godotenv is a go port of the ruby dotenv library (https://github.com/bkeepers/dotenv)
|
||||
//
|
||||
// Examples/readme can be found on the github page at https://github.com/joho/godotenv
|
||||
// Examples/readme can be found on the github page at https://github.com/mniak/godotenv
|
||||
//
|
||||
// The TL;DR is that you make a .env file that looks something like
|
||||
//
|
||||
|
@ -22,6 +22,7 @@ import (
|
|||
"os/exec"
|
||||
"regexp"
|
||||
"sort"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
|
@ -169,7 +170,11 @@ func Write(envMap map[string]string, filename string) error {
|
|||
func Marshal(envMap map[string]string) (string, error) {
|
||||
lines := make([]string, 0, len(envMap))
|
||||
for k, v := range envMap {
|
||||
lines = append(lines, fmt.Sprintf(`%s="%s"`, k, doubleQuoteEscape(v)))
|
||||
if d, err := strconv.Atoi(v); err == nil {
|
||||
lines = append(lines, fmt.Sprintf(`%s=%d`, k, d))
|
||||
} else {
|
||||
lines = append(lines, fmt.Sprintf(`%s="%s"`, k, doubleQuoteEscape(v)))
|
||||
}
|
||||
}
|
||||
sort.Strings(lines)
|
||||
return strings.Join(lines, "\n"), nil
|
||||
|
|
|
@ -445,7 +445,8 @@ func TestWrite(t *testing.T) {
|
|||
writeAndCompare(`foo="\n\r\\r!"`, `foo="\n\r\\r\!"`)
|
||||
// lines should be sorted
|
||||
writeAndCompare("foo=bar\nbaz=buzz", "baz=\"buzz\"\nfoo=\"bar\"")
|
||||
|
||||
// integers should not be quoted
|
||||
writeAndCompare(`key="10"`, `key=10`)
|
||||
}
|
||||
|
||||
func TestRoundtrip(t *testing.T) {
|
||||
|
|
Loading…
Reference in New Issue