api app source

This commit is contained in:
shoopea
2025-12-28 21:54:21 +01:00
parent fd1c14831f
commit fc81c38ffd
4 changed files with 234 additions and 38 deletions

29
app.go
View File

@@ -2,7 +2,6 @@ package main
import (
"errors"
"fmt"
"regexp"
"strings"
"sync"
@@ -25,19 +24,27 @@ func (c *Config) NewApp(name string, sources, destinations, schedule []string, b
defer log.WithFields(log.Fields{"name": name}).Debugf("done")
if _, ok := c.apps[name]; ok {
return nil, fmt.Errorf("app already exist")
err := errors.New("app already exist")
log.WithFields(log.Fields{"app": name, "error": err}).Errorf("")
return nil, err
}
if len(sources) == 0 {
return nil, fmt.Errorf("no sources")
err := errors.New("no sources")
log.WithFields(log.Fields{"app": name, "error": err}).Errorf("")
return nil, err
}
if len(destinations) == 0 {
return nil, fmt.Errorf("no destinations")
err := errors.New("no destinations")
log.WithFields(log.Fields{"app": name, "error": err}).Errorf("")
return nil, err
}
if len(schedule) == 0 {
return nil, fmt.Errorf("no schedule")
err := errors.New("no schedule")
log.WithFields(log.Fields{"app": name, "error": err}).Errorf("")
return nil, err
}
a := &App{
@@ -582,7 +589,9 @@ func (a *App) RunStandaloneTime(now time.Time) error {
defer log.WithFields(log.Fields{"app": a.name}).Debugf("done")
if cfgRun {
return fmt.Errorf("backup already running")
err := errors.New("backup already running")
log.WithFields(log.Fields{"app": a.name, "error": err}).Errorf("")
return err
}
CfgLock()
@@ -615,7 +624,9 @@ func (a *App) RunStandaloneTime(now time.Time) error {
return err
} else {
if sched == "" {
return fmt.Errorf("no backup needed")
err := errors.New("no backup needed")
log.WithFields(log.Fields{"app": a.name, "error": err}).Errorf("")
return err
}
}
@@ -627,7 +638,9 @@ func (a *App) RunStandaloneSchedule(name string) error {
defer log.WithFields(log.Fields{"app": a.name, "name": name}).Debugf("done")
if cfgRun {
return fmt.Errorf("backup already running")
err := errors.New("backup already running")
log.WithFields(log.Fields{"app": a.name, "error": err}).Errorf("")
return err
}
CfgLock()