package app import ( "io/fs" "os" "runtime" "sync" "time" "gittea.marcokittel.de/elio/eliotools/datawriter/internal/dbwriter" "gittea.marcokittel.de/elio/eliotools/logger" "gittea.marcokittel.de/elio/eliotools/tools" ) type App struct { wg sync.WaitGroup mu sync.Mutex log logger.Logger newFolderPath string processedFolderPath string lookupPath string dirCreationRights int job func(dbwriter.DBWriter) dbw dbwriter.DBWriter } 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) write(data dbwriter.MyStruct) { a.log.Info("Okay.... wir sind jetzt hier..... Hier können wir die Spiele beginnen lassen") } 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() }