This commit is contained in:
shoopea
2025-12-28 16:31:28 +01:00
parent a1ed1035e9
commit d92380cccb
5 changed files with 29 additions and 24 deletions

View File

@@ -80,7 +80,7 @@ func (a *AdminConfig) Run() {
}() }()
c := cron.New(cron.WithLocation(time.UTC)) c := cron.New(cron.WithLocation(time.UTC))
if _, err := c.AddFunc("0 * * * *", func() { cfg.Run() }); err != nil { if _, err := c.AddFunc("0 * * * *", func() { cfg.Run(true) }); err != nil {
log.WithFields(log.Fields{"call": "cron.AddFunc", "error": err}).Errorf("") log.WithFields(log.Fields{"call": "cron.AddFunc", "error": err}).Errorf("")
} }
c.Start() c.Start()

13
api.go
View File

@@ -11,7 +11,7 @@ import (
) )
func ApiRun(c *gin.Context) { func ApiRun(c *gin.Context) {
cfg.Run() cfg.Run(true)
c.JSON(http.StatusOK, gin.H{ c.JSON(http.StatusOK, gin.H{
"message": "done", "message": "done",
}) })
@@ -118,7 +118,7 @@ func ApiRunApp(c *gin.Context) {
} }
func ApiSave(c *gin.Context) { func ApiSave(c *gin.Context) {
if err := cfg.Save(); err != nil { if err := cfg.Save(true); err != nil {
c.JSON(http.StatusInternalServerError, gin.H{ c.JSON(http.StatusInternalServerError, gin.H{
"message": "error", "message": "error",
"error": err, "error": err,
@@ -131,7 +131,7 @@ func ApiSave(c *gin.Context) {
} }
func ApiConfig(c *gin.Context) { func ApiConfig(c *gin.Context) {
if b, err := cfg.Pretty(); err != nil { if b, err := cfg.Pretty(true); err != nil {
c.JSON(http.StatusInternalServerError, gin.H{ c.JSON(http.StatusInternalServerError, gin.H{
"message": "error", "message": "error",
"error": err, "error": err,
@@ -151,7 +151,7 @@ func ApiConfigApp(c *gin.Context) {
for _, app := range cfg.Apps { for _, app := range cfg.Apps {
if app.Name == name { if app.Name == name {
found = true found = true
if b, err := app.Pretty(); err != nil { if b, err := app.Pretty(false); err != nil {
c.JSON(http.StatusInternalServerError, gin.H{ c.JSON(http.StatusInternalServerError, gin.H{
"message": "error", "message": "error",
"error": err, "error": err,
@@ -220,7 +220,7 @@ func ApiAppAdd(c *gin.Context) {
cfg.Apps = append(cfg.Apps, app) cfg.Apps = append(cfg.Apps, app)
CfgUnlock() CfgUnlock()
err := cfg.Save() err := cfg.Save(false)
if err != nil { if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{ c.JSON(http.StatusInternalServerError, gin.H{
"message": "error", "message": "error",
@@ -262,8 +262,7 @@ func ApiAppDel(c *gin.Context) {
return return
} }
CfgUnlock() err := cfg.Save(false)
err := cfg.Save()
if err != nil { if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{ c.JSON(http.StatusInternalServerError, gin.H{
"message": "error", "message": "error",

View File

@@ -59,7 +59,7 @@ func main() {
} }
cfg.Admin.Run() cfg.Admin.Run()
} else { } else {
cfg.Run() cfg.Run(true)
os.Exit(0) os.Exit(0)
} }

View File

@@ -203,12 +203,14 @@ func LoadConfigByte(conf []byte) (*Config, error) {
} }
// Pretty config // Pretty config
func (c *Config) Pretty() ([]byte, error) { func (c *Config) Pretty(lock bool) ([]byte, error) {
log.WithFields(log.Fields{}).Debugf("starting") log.WithFields(log.Fields{}).Debugf("starting")
defer log.WithFields(log.Fields{}).Debugf("done") defer log.WithFields(log.Fields{}).Debugf("done")
CfgLock() if lock {
defer CfgUnlock() CfgLock()
defer CfgUnlock()
}
b, err := json.Marshal(cfg) b, err := json.Marshal(cfg)
if err != nil { if err != nil {
@@ -220,12 +222,14 @@ func (c *Config) Pretty() ([]byte, error) {
} }
// Pretty App Config // Pretty App Config
func (a *AppConfig) Pretty() ([]byte, error) { func (a *AppConfig) Pretty(lock bool) ([]byte, error) {
log.WithFields(log.Fields{}).Debugf("starting") log.WithFields(log.Fields{}).Debugf("starting")
defer log.WithFields(log.Fields{}).Debugf("done") defer log.WithFields(log.Fields{}).Debugf("done")
CfgLock() if lock {
defer CfgUnlock() CfgLock()
defer CfgUnlock()
}
b, err := json.Marshal(a) b, err := json.Marshal(a)
if err != nil { if err != nil {
@@ -237,11 +241,11 @@ func (a *AppConfig) Pretty() ([]byte, error) {
} }
// Save config // Save config
func (c *Config) Save() error { func (c *Config) Save(lock bool) error {
log.WithFields(log.Fields{}).Debugf("starting") log.WithFields(log.Fields{}).Debugf("starting")
defer log.WithFields(log.Fields{}).Debugf("done") defer log.WithFields(log.Fields{}).Debugf("done")
r, err := cfg.Pretty() r, err := cfg.Pretty(lock)
if err != nil { if err != nil {
log.WithFields(log.Fields{"error": err, "call": "cfg.Pretty"}).Errorf("") log.WithFields(log.Fields{"error": err, "call": "cfg.Pretty"}).Errorf("")
return err return err
@@ -263,7 +267,7 @@ func (c *Config) Save() error {
} }
// Run config // Run config
func (c *Config) Run() { func (c *Config) Run(lock bool) {
log.WithFields(log.Fields{}).Debugf("starting") log.WithFields(log.Fields{}).Debugf("starting")
defer log.WithFields(log.Fields{}).Debugf("done") defer log.WithFields(log.Fields{}).Debugf("done")
@@ -271,8 +275,10 @@ func (c *Config) Run() {
return return
} }
CfgLock() if lock {
defer CfgUnlock() CfgLock()
defer CfgUnlock()
}
cfgRun = true cfgRun = true
defer func() { cfgRun = false }() defer func() { cfgRun = false }()

View File

@@ -1,7 +1,7 @@
// Code generated by version.sh (@generated) DO NOT EDIT. // Code generated by version.sh (@generated) DO NOT EDIT.
package main package main
var githash = "6a0c800" var githash = "a1ed103"
var branch = "master" var branch = "master"
var buildstamp = "2025-12-28_15:20:20" var buildstamp = "2025-12-28_15:30:19"
var commits = "120" var commits = "121"
var version = "6a0c800-b120 - 2025-12-28_15:20:20" var version = "a1ed103-b121 - 2025-12-28_15:30:19"