✨ Use dot as folder separator
Also don't add dot if no extension
This commit is contained in:
parent
0687671c7d
commit
a61af1b4b3
4 changed files with 74 additions and 4 deletions
|
|
@ -17,6 +17,8 @@ path = "%s"
|
||||||
ext = "txt"
|
ext = "txt"
|
||||||
# Whether to look in sub-folders
|
# Whether to look in sub-folders
|
||||||
recurse = true
|
recurse = true
|
||||||
|
# Whether to use a dot as a folder separator in log names
|
||||||
|
dotFolder = true
|
||||||
|
|
||||||
# config for output types
|
# config for output types
|
||||||
[output]
|
[output]
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,10 @@ type Config struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type Input struct {
|
type Input struct {
|
||||||
Path string `env:"LOG_PATH"`
|
Path string `env:"LOG_PATH"`
|
||||||
Recurse bool `env:"LOG_RECURSE"`
|
Recurse bool `env:"LOG_RECURSE"`
|
||||||
Ext string `env:"LOG_EXT"`
|
Ext string `env:"LOG_EXT"`
|
||||||
|
DotFolder bool `env:"LOG_DOT_FOLDER"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Outputs map[string]Output
|
type Outputs map[string]Output
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,14 @@ func Append(l models.Log) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
filename := fmt.Sprintf("%s.%s", strings.ReplaceAll(l.Name, ".", string(os.PathSeparator)), conf.Input.Ext)
|
filename := l.Name
|
||||||
|
if conf.Input.DotFolder {
|
||||||
|
filename = strings.ReplaceAll(filename, ".", string(os.PathSeparator))
|
||||||
|
}
|
||||||
|
|
||||||
|
if conf.Input.Ext != "" {
|
||||||
|
filename = fmt.Sprintf("%s.%s", filename, conf.Input.Ext)
|
||||||
|
}
|
||||||
path := fp.Join(conf.Input.Path, filename)
|
path := fp.Join(conf.Input.Path, filename)
|
||||||
dir := fp.Dir(path)
|
dir := fp.Dir(path)
|
||||||
err = os.MkdirAll(dir, 0750)
|
err = os.MkdirAll(dir, 0750)
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,66 @@ func (s *AppendTestSuite) TestSuccess() {
|
||||||
s.Assert().Contains(st, "\n@bar true")
|
s.Assert().Contains(st, "\n@bar true")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *AppendTestSuite) TestDotFolder() {
|
||||||
|
config.Overrides["input.dotFolder"] = "true"
|
||||||
|
e := models.Entry{
|
||||||
|
Title: "something",
|
||||||
|
Date: time.Now(),
|
||||||
|
}
|
||||||
|
l := models.Log{
|
||||||
|
Name: "sub.test",
|
||||||
|
Entries: []models.Entry{e},
|
||||||
|
}
|
||||||
|
err := Append(l)
|
||||||
|
s.Require().NoError(err)
|
||||||
|
s.Require().FileExists(s.dir + "/sub/test.log")
|
||||||
|
by, err := os.ReadFile(s.dir + "/sub/test.log")
|
||||||
|
st := string(by)
|
||||||
|
s.Require().NoError(err)
|
||||||
|
s.Assert().Contains(st, "something @end")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *AppendTestSuite) TestDotFolderNo() {
|
||||||
|
config.Overrides["input.dotFolder"] = "false"
|
||||||
|
e := models.Entry{
|
||||||
|
Title: "another",
|
||||||
|
Date: time.Now(),
|
||||||
|
}
|
||||||
|
l := models.Log{
|
||||||
|
Name: "sub.test",
|
||||||
|
Entries: []models.Entry{e},
|
||||||
|
}
|
||||||
|
err := Append(l)
|
||||||
|
s.Require().NoError(err)
|
||||||
|
s.Require().FileExists(s.dir + "/sub.test.log")
|
||||||
|
by, err := os.ReadFile(s.dir + "/sub.test.log")
|
||||||
|
st := string(by)
|
||||||
|
s.Require().NoError(err)
|
||||||
|
s.Assert().Contains(st, "another @end")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *AppendTestSuite) TestNoExt() {
|
||||||
|
config.Overrides["input.ext"] = ""
|
||||||
|
defer func() {
|
||||||
|
config.Overrides["input.ext"] = "log"
|
||||||
|
}()
|
||||||
|
e := models.Entry{
|
||||||
|
Title: "baz",
|
||||||
|
Date: time.Now(),
|
||||||
|
}
|
||||||
|
l := models.Log{
|
||||||
|
Name: "foobar",
|
||||||
|
Entries: []models.Entry{e},
|
||||||
|
}
|
||||||
|
err := Append(l)
|
||||||
|
s.Require().NoError(err)
|
||||||
|
s.Require().FileExists(s.dir + "/foobar")
|
||||||
|
by, err := os.ReadFile(s.dir + "/foobar")
|
||||||
|
st := string(by)
|
||||||
|
s.Require().NoError(err)
|
||||||
|
s.Assert().Contains(st, "baz @end")
|
||||||
|
}
|
||||||
|
|
||||||
func (s *AppendTestSuite) TestConfLoadErr() {
|
func (s *AppendTestSuite) TestConfLoadErr() {
|
||||||
currConf := config.ConfigPath
|
currConf := config.ConfigPath
|
||||||
tmp, _ := os.CreateTemp("", "app-conf-*.toml")
|
tmp, _ := os.CreateTemp("", "app-conf-*.toml")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue