90 lines
1.8 KiB
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()
|
|
|
|
}
|