Skip to content

Commit

Permalink
Add some minor fixes
Browse files Browse the repository at this point in the history
Signed-off-by: Ulysses Souza <[email protected]>
  • Loading branch information
ulyssessouza committed Mar 23, 2024
1 parent 086bcae commit a6b253e
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 31 deletions.
73 changes: 43 additions & 30 deletions envlang_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,12 @@ A = "aaa ${B} ccc "
func TestFull(t *testing.T) {
log.SetLevel(log.DebugLevel)
is := `
INVALID LINE
# my comment
# my tab comment
VAR_TO_BE_LOADED_FROM_OS_ENV
A=aaa # my inline comment on A
B="bbb" # my inline comment on B
Expand Down Expand Up @@ -286,6 +291,7 @@ N4=44AS4sA44
SIMPLE_SPACING = aaa ${B} ccc
export OPTION_B='\n'
SPECIAL1 = "{{{ ${A} }}}"
SPECIAL2 = "{{{ $A }}}"
Expand All @@ -299,40 +305,47 @@ EMPTY_VAR=""
VAR_DEFAULT_UNSET = "${UNSET_VAR-uuu}"
VAR_DEFAULT_UNSET_OR_EMPTY = "${EMPTY_VAR-eee}"
VAR_DEFAULT_EMPTY = "${EMPTY_VAR:-eee}"
export EQUALS='postgres://localhost:5432/database?sslmode=disable'
`
expected := map[string]*string{
"A": strPtr("aaa"),
"B": strPtr("bbb"),
"C": strPtr("ccc"),
"D": strPtr("ddd"),
"E": strPtr("eee"),
"F": strPtr(""),
"G": nil,
"H": strPtr("my_value"),
"I": strPtr("bar baz"),
"J": strPtr("foo bar"),
"L": strPtr("my\nmulti\nline\nentry"),
"M": strPtr("foo aaa bar"),
"MYVAR": strPtr("before bar baz after foo bar opa "),
"N1": strPtr("41"),
"N2": strPtr("42"),
"N3": strPtr("43AS3sA43"),
"N4": strPtr("44AS4sA44"),
"SIMPLE_SPACING": strPtr("aaa bbb ccc"),
"SPECIAL1": strPtr("{{{ aaa }}}"),
"SPECIAL2": strPtr("{{{ aaa }}}"),
"SPECIAL3": strPtr("{{{ $ }}}"),
"SPECIAL4": strPtr("{{{ $ $ $}}}"),
"SPECIAL5": strPtr("{{{ $$ }}}"),
"SPECIAL6": strPtr("{{{ $$$ }}}"),
"EMPTY_VAR": strPtr(""),
"VAR_DEFAULT_UNSET": strPtr("uuu"),
"VAR_DEFAULT_UNSET_OR_EMPTY": strPtr(""),
"VAR_DEFAULT_EMPTY": strPtr("eee"),
"EXPORTED_VAR": strPtr("exported_value"),
"A": strPtr("aaa"),
"B": strPtr("bbb"),
"C": strPtr("ccc"),
"D": strPtr("ddd"),
"E": strPtr("eee"),
"F": strPtr(""),
"G": nil,
"H": strPtr("my_value"),
"I": strPtr("bar baz"),
"J": strPtr("foo bar"),
"L": strPtr("my\nmulti\nline\nentry"),
"M": strPtr("foo aaa bar"),
"MYVAR": strPtr("before bar baz after foo bar opa "),
"N1": strPtr("41"),
"N2": strPtr("42"),
"N3": strPtr("43AS3sA43"),
"N4": strPtr("44AS4sA44"),
"SIMPLE_SPACING": strPtr("aaa bbb ccc"),
"SPECIAL1": strPtr("{{{ aaa }}}"),
"SPECIAL2": strPtr("{{{ aaa }}}"),
"SPECIAL3": strPtr("{{{ $ }}}"),
"SPECIAL4": strPtr("{{{ $ $ $}}}"),
"SPECIAL5": strPtr("{{{ $$ }}}"),
"SPECIAL6": strPtr("{{{ $$$ }}}"),
"EMPTY_VAR": strPtr(""),
"VAR_DEFAULT_UNSET": strPtr("uuu"),
"VAR_DEFAULT_UNSET_OR_EMPTY": strPtr(""),
"VAR_DEFAULT_EMPTY": strPtr("eee"),
"EXPORTED_VAR": strPtr("exported_value"),
"OPTION_B": strPtr("\\n"),
"EQUALS": strPtr("postgres://localhost:5432/database?sslmode=disable"),
"VAR_TO_BE_LOADED_FROM_OS_ENV": strPtr("loaded_from_os_env"),
}

d := dao.NewDefaultDao()
d := dao.NewDefaultDaoFromMap(map[string]*string{
"VAR_TO_BE_LOADED_FROM_OS_ENV": strPtr("loaded_from_os_env"),
})
assert.DeepEqual(t, expected, GetVariables(d, is))
}

Expand Down
13 changes: 12 additions & 1 deletion handlers/filehandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package handlers

import (
"fmt"
"regexp"
"strings"

"github.com/ulyssessouza/envlang/dao"
Expand Down Expand Up @@ -34,16 +35,26 @@ func (l *EnvLangFileListener) ExitEntry(c *fileparser.EntryContext) {
return
}

// TODO: Implement the logic to handle the export keyword in the grammar file
// TODO: Implement this logic in the grammar file
id, _ = strings.CutPrefix(id, "export ")
id = strings.TrimSpace(id)
if strings.HasPrefix(id, "#") {
return
}
re := regexp.MustCompile(`^[0-9a-zA-Z_]+$`)
if !re.MatchString(id) {
return
}
// TODO: END

hasAssign := true
if c.ASSIGN() == nil || c.ASSIGN().GetText() == "" {
hasAssign = false
gotFromDAO, ok := l.d.Get(id)
if ok && gotFromDAO != nil {
l.d.Put(id, gotFromDAO)
return
}
}
if hasAssign && c.Value() == nil {
v := ""
Expand Down

0 comments on commit a6b253e

Please sign in to comment.