App struct hinzugefügt um Mutex usw später zu handeln

This commit is contained in:
Marco Kittel 2025-06-22 21:53:24 +02:00
parent 8417e8a888
commit 6daf06d19c
2 changed files with 93 additions and 37 deletions

View File

@ -1,12 +1,7 @@
package main
import (
"fmt"
"os"
"runtime"
"gittea.marcokittel.de/elio/eliotools/logger"
"gittea.marcokittel.de/elio/eliotools/tools"
"gittea.marcokittel.de/elio/eliotools/datawriter/internal/app"
)
const (
@ -19,37 +14,9 @@ const (
var filename = "2023-11-09T15:02:17+00:00-CH-stock.csv"
func main() {
x := tools.IsFilenameValid(filename)
ml := logger.NewMarcoLogger()
ml.Info(fmt.Sprint(x))
if runtime.GOOS == "windows" {
ml.Fatal("Einfach nein!")
}
path, _ := os.Getwd()
newDirExists, err := tools.CheckDir(path + NewDir)
if err != nil {
ml.Fatal(err.Error())
}
processedDirExists, err := tools.CheckDir(path + ProcessedDir)
if err != nil {
ml.Fatal(err.Error())
}
if !newDirExists {
err := tools.Createdir(path+NewDir, Rights)
if err == nil {
ml.Infof("%s created.", path+NewDir)
}
}
if !processedDirExists {
err := tools.Createdir(path+ProcessedDir, Rights)
if err == nil {
ml.Infof("%s created.", path+ProcessedDir)
}
}
// Auf mdcat warten
app := app.NewApp(NewDir, ProcessedDir, Rights)
app.Run()
}

89
internal/app/app.go Normal file
View File

@ -0,0 +1,89 @@
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()
}