datawriter/internal/app/app.go

90 lines
1.8 KiB
Go

package app
import (
"io/fs"
"os"
"runtime"
"sync"
"time"
"gittea.marcokittel.de/elio/eliotools/logger"
"gittea.marcokittel.de/elio/eliotools/tools"
)
type App struct {
wg sync.WaitGroup
log logger.Logger
newFolderPath string
processedFolderPath string
lookupPath string
dirCreationRights int
}
func NewApp(newFolderPath string, processedFolderPath string, dirCreationRights int) *App {
a := App{log: logger.NewMarcoLogger(),
newFolderPath: newFolderPath,
processedFolderPath: processedFolderPath,
dirCreationRights: dirCreationRights,
}
return &a
}
func (a *App) Foo() {
// x := tools.IsFilenameValid(filename)
path, _ := os.Getwd()
ml := logger.NewMarcoLogger()
// ml.Info(fmt.Sprint(x))
newDirExists, err := tools.CheckDir(path + a.newFolderPath)
if err != nil {
ml.Fatal(err.Error())
}
processedDirExists, err := tools.CheckDir(path + a.processedFolderPath)
if err != nil {
ml.Fatal(err.Error())
}
if !newDirExists {
err := tools.Createdir(path+a.newFolderPath, fs.FileMode(a.dirCreationRights))
if err == nil {
ml.Infof("%s created.", a.newFolderPath)
}
}
if !processedDirExists {
err := tools.Createdir(path+a.processedFolderPath, fs.FileMode(a.dirCreationRights))
if err == nil {
ml.Infof("%s created.", a.processedFolderPath)
}
}
}
func (a *App) Run() {
if runtime.GOOS == "windows" {
a.log.Fatal("Einfach nein!")
}
a.log.Info("Applikation gestartet")
for {
time.Sleep(time.Second * 10)
a.log.Info("Oh yeah baby, wir nehmen fahrt auf...")
}
// Todo:
// for i := 0; i < 4; i++ {
// a.wg.Add(1)
// go func() {
// defer a.wg.Done()
// ctx, cancel := context.WithDeadline(context.Background(), time.Now().Add(time.Duration(1*time.Millisecond)))
// defer cancel()
// }()
// }
// a.wg.Wait()
}