Rename and implement int-able without quotes

This commit is contained in:
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) 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 As a library
```shell ```shell
go get github.com/joho/godotenv go get github.com/mniak/godotenv
``` ```
or if you want to use it as a bin command or if you want to use it as a bin command
```shell ```shell
go get github.com/joho/godotenv/cmd/godotenv go get github.com/mniak/godotenv/cmd/godotenv
``` ```
## Usage ## Usage
@ -40,7 +40,7 @@ Then in your Go app you can do something like
package main package main
import ( import (
"github.com/joho/godotenv" "github.com/mniak/godotenv"
"log" "log"
"os" "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 If you're even lazier than that, you can just take advantage of the autoload package which will read in `.env` on import
```go ```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 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`. 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 ## 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? ## Who?

View File

@ -3,12 +3,12 @@ package autoload
/* /*
You can just read the .env file on import just by doing 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 And bob's your mother's brother
*/ */
import "github.com/joho/godotenv" import "github.com/mniak/godotenv"
func init() { func init() {
godotenv.Load() godotenv.Load()

View File

@ -7,7 +7,7 @@ import (
"strings" "strings"
"github.com/joho/godotenv" "github.com/mniak/godotenv"
) )
func main() { 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) // 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 // The TL;DR is that you make a .env file that looks something like
// //
@ -22,6 +22,7 @@ import (
"os/exec" "os/exec"
"regexp" "regexp"
"sort" "sort"
"strconv"
"strings" "strings"
) )
@ -169,7 +170,11 @@ func Write(envMap map[string]string, filename string) error {
func Marshal(envMap map[string]string) (string, error) { func Marshal(envMap map[string]string) (string, error) {
lines := make([]string, 0, len(envMap)) lines := make([]string, 0, len(envMap))
for k, v := range 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) sort.Strings(lines)
return strings.Join(lines, "\n"), nil 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\!"`) writeAndCompare(`foo="\n\r\\r!"`, `foo="\n\r\\r\!"`)
// lines should be sorted // lines should be sorted
writeAndCompare("foo=bar\nbaz=buzz", "baz=\"buzz\"\nfoo=\"bar\"") writeAndCompare("foo=bar\nbaz=buzz", "baz=\"buzz\"\nfoo=\"bar\"")
// integers should not be quoted
writeAndCompare(`key="10"`, `key=10`)
} }
func TestRoundtrip(t *testing.T) { func TestRoundtrip(t *testing.T) {