Rename and implement int-able without quotes

pull/108/head
Andre Soares 2020-06-26 15:22:04 -03:00
parent d6ee6871f2
commit 29b5be9cdc
6 changed files with 22 additions and 13 deletions

View File

@ -1,4 +1,4 @@
# GoDotEnv [![Build Status](https://travis-ci.org/joho/godotenv.svg?branch=master)](https://travis-ci.org/joho/godotenv) [![Build status](https://ci.appveyor.com/api/projects/status/9v40vnfvvgde64u4?svg=true)](https://ci.appveyor.com/project/joho/godotenv) [![Go Report Card](https://goreportcard.com/badge/github.com/joho/godotenv)](https://goreportcard.com/report/github.com/joho/godotenv)
# GoDotEnv [![Build Status](https://travis-ci.org/mniak/godotenv.svg?branch=master)](https://travis-ci.org/mniak/godotenv) [![Build status](https://ci.appveyor.com/api/projects/status/9v40vnfvvgde64u4?svg=true)](https://ci.appveyor.com/project/mniak/godotenv) [![Go Report Card](https://goreportcard.com/badge/github.com/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: [![Build Status](https://travis-ci.org/joho/godotenv.svg?branch=master)](https://travis-ci.org/joho/godotenv) Windows: [![Build status](https://ci.appveyor.com/api/projects/status/9v40vnfvvgde64u4)](https://ci.appveyor.com/project/joho/godotenv)
Linux: [![Build Status](https://travis-ci.org/mniak/godotenv.svg?branch=master)](https://travis-ci.org/mniak/godotenv) Windows: [![Build status](https://ci.appveyor.com/api/projects/status/9v40vnfvvgde64u4)](https://ci.appveyor.com/project/mniak/godotenv)
## Who?

View File

@ -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()

View File

@ -7,7 +7,7 @@ import (
"strings"
"github.com/joho/godotenv"
"github.com/mniak/godotenv"
)
func main() {

3
go.mod Normal file
View File

@ -0,0 +1,3 @@
module github.com/mniak/godotenv
go 1.14

View File

@ -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

View File

@ -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) {