From 6daf06d19c2e94a0fca0bfca295640476a4749c7 Mon Sep 17 00:00:00 2001 From: Marco Kittel Date: Sun, 22 Jun 2025 21:53:24 +0200 Subject: [PATCH] =?UTF-8?q?App=20struct=20hinzugef=C3=BCgt=20um=20Mutex=20?= =?UTF-8?q?usw=20sp=C3=A4ter=20zu=20handeln?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/shell/main.go | 41 ++------------------- internal/app/app.go | 89 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+), 37 deletions(-) create mode 100644 internal/app/app.go diff --git a/cmd/shell/main.go b/cmd/shell/main.go index 70c53e7..b094b75 100644 --- a/cmd/shell/main.go +++ b/cmd/shell/main.go @@ -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() } diff --git a/internal/app/app.go b/internal/app/app.go new file mode 100644 index 0000000..1997e8e --- /dev/null +++ b/internal/app/app.go @@ -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() + +}