Реализовал парсер логов на GO, в данный момент программа принимает параметр пути в таком формате
пример /var/log/2019/2019-05/2019-05-27/ , парсит лишь текущую папку и возвращает полные пути к файлам, хотелось бы узнать,а как реализовать парсер путей к файлам в таком в виде как
--datastart /var/log/2019/2019-05/2019-05-01/ --dataend /var/log/2019/2019-05/2019-05-31/ , для того чтобы парсить определённый диапазон дат, которые разбиты по папкам.
Моя функция реализации первого варианта :
func WalkFile(done <- chan struct{},root string)(<-chan string,<-chan error){
paths := make(chan string)
errc := make(chan error,1)
go func() {
defer close(paths)
errc <- filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
if err != nil{
return err
}
if !info.Mode().IsRegular(){
return nil
}
select {
case paths <- path:
case <-done:
return nil
}
return nil
})
}()
return paths,errc
}