godotenv
godotenv copied to clipboard
Behaviour deviates from Node dotenv
I am using the following code to compare the difference in behaviour.
require('dotenv').config()
console.log(process.env.TEST_ENV)
package main
import (
"fmt"
"os"
"github.com/joho/godotenv"
)
func main() {
if err := godotenv.Load(); err != nil {
fmt.Fprintln(os.Stderr, err)
}
fmt.Println(os.Getenv("TEST_ENV"))
}
-
Double quotes without escape
TEST_ENV="test"test"Node dotenv worked but godotenv failed to even parse the env file.
-
Double quotes with escape
TEST_ENV="test\"test"Node dotenv parsed the value literally but gotdotenv used
\to escape the double quote. -
Exclamation mark with escape
TEST_ENV="test\!test"Node dotenv parsed the value literally but godotenv used
\to escape the exclamation mark.An additional point here is that both the libraries parses exclamation marks without escape as well.
TEST_ENV="test!test"However godotenv escapes exclamation during marshalling.
HI @joho can I address this? If this needs to be done then I can try working on this.