mirror of
https://github.com/datarhei/core.git
synced 2025-10-04 07:37:33 +08:00
Use config locations for import and ffmigrage
This commit is contained in:
@@ -22,7 +22,9 @@ func main() {
|
|||||||
"to": "ffmpeg5",
|
"to": "ffmpeg5",
|
||||||
})
|
})
|
||||||
|
|
||||||
configstore, err := cfgstore.NewJSON(os.Getenv("CORE_CONFIGFILE"), nil)
|
configfile := cfgstore.Location(os.Getenv("CORE_CONFIGFILE"))
|
||||||
|
|
||||||
|
configstore, err := cfgstore.NewJSON(configfile, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error().WithError(err).Log("Loading configuration failed")
|
logger.Error().WithError(err).Log("Loading configuration failed")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
|
@@ -15,7 +15,9 @@ import (
|
|||||||
func main() {
|
func main() {
|
||||||
logger := log.New("Import").WithOutput(log.NewConsoleWriter(os.Stderr, log.Linfo, true)).WithField("version", "v1")
|
logger := log.New("Import").WithOutput(log.NewConsoleWriter(os.Stderr, log.Linfo, true)).WithField("version", "v1")
|
||||||
|
|
||||||
configstore, err := cfgstore.NewJSON(os.Getenv("CORE_CONFIGFILE"), nil)
|
configfile := cfgstore.Location(os.Getenv("CORE_CONFIGFILE"))
|
||||||
|
|
||||||
|
configstore, err := cfgstore.NewJSON(configfile, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error().WithError(err).Log("Loading configuration failed")
|
logger.Error().WithError(err).Log("Loading configuration failed")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
|
53
config/store/location.go
Normal file
53
config/store/location.go
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
package store
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
"path"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Location returns the path to the config file. If no path is provided,
|
||||||
|
// different standard location will be probed:
|
||||||
|
// - os.UserConfigDir() + /datarhei-core/config.js
|
||||||
|
// - os.UserHomeDir() + /.config/datarhei-core/config.js
|
||||||
|
// - ./config/config.js
|
||||||
|
// If the config doesn't exist in none of these locations, it will be assumed
|
||||||
|
// at ./config/config.js
|
||||||
|
func Location(filepath string) string {
|
||||||
|
configfile := filepath
|
||||||
|
if len(configfile) != 0 {
|
||||||
|
return configfile
|
||||||
|
}
|
||||||
|
|
||||||
|
locations := []string{}
|
||||||
|
|
||||||
|
if dir, err := os.UserConfigDir(); err == nil {
|
||||||
|
locations = append(locations, dir+"/datarhei-core/config.js")
|
||||||
|
}
|
||||||
|
|
||||||
|
if dir, err := os.UserHomeDir(); err == nil {
|
||||||
|
locations = append(locations, dir+"/.config/datarhei-core/config.js")
|
||||||
|
}
|
||||||
|
|
||||||
|
locations = append(locations, "./config/config.js")
|
||||||
|
|
||||||
|
for _, path := range locations {
|
||||||
|
info, err := os.Stat(path)
|
||||||
|
if err != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
if info.IsDir() {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
configfile = path
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(configfile) == 0 {
|
||||||
|
configfile = "./config/config.js"
|
||||||
|
}
|
||||||
|
|
||||||
|
os.MkdirAll(path.Dir(configfile), 0740)
|
||||||
|
|
||||||
|
return configfile
|
||||||
|
}
|
52
main.go
52
main.go
@@ -3,9 +3,9 @@ package main
|
|||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
"os/signal"
|
"os/signal"
|
||||||
"path"
|
|
||||||
|
|
||||||
"github.com/datarhei/core/v16/app/api"
|
"github.com/datarhei/core/v16/app/api"
|
||||||
|
"github.com/datarhei/core/v16/config/store"
|
||||||
"github.com/datarhei/core/v16/log"
|
"github.com/datarhei/core/v16/log"
|
||||||
|
|
||||||
_ "github.com/joho/godotenv/autoload"
|
_ "github.com/joho/godotenv/autoload"
|
||||||
@@ -14,7 +14,7 @@ import (
|
|||||||
func main() {
|
func main() {
|
||||||
logger := log.New("Core").WithOutput(log.NewConsoleWriter(os.Stderr, log.Lwarn, true))
|
logger := log.New("Core").WithOutput(log.NewConsoleWriter(os.Stderr, log.Lwarn, true))
|
||||||
|
|
||||||
configfile := findConfigfile()
|
configfile := store.Location(os.Getenv("CORE_CONFIGFILE"))
|
||||||
|
|
||||||
app, err := api.New(configfile, os.Stderr)
|
app, err := api.New(configfile, os.Stderr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -57,51 +57,3 @@ func main() {
|
|||||||
// Stop the app
|
// Stop the app
|
||||||
app.Destroy()
|
app.Destroy()
|
||||||
}
|
}
|
||||||
|
|
||||||
// findConfigfie returns the path to the config file. If no path is given
|
|
||||||
// in the environment variable CORE_CONFIGFILE, different standard location
|
|
||||||
// will be probed:
|
|
||||||
// - os.UserConfigDir() + /datarhei-core/config.js
|
|
||||||
// - os.UserHomeDir() + /.config/datarhei-core/config.js
|
|
||||||
// - ./config/config.js
|
|
||||||
// If the config doesn't exist in none of these locations, it will be assumed
|
|
||||||
// at ./config/config.js
|
|
||||||
func findConfigfile() string {
|
|
||||||
configfile := os.Getenv("CORE_CONFIGFILE")
|
|
||||||
if len(configfile) != 0 {
|
|
||||||
return configfile
|
|
||||||
}
|
|
||||||
|
|
||||||
locations := []string{}
|
|
||||||
|
|
||||||
if dir, err := os.UserConfigDir(); err == nil {
|
|
||||||
locations = append(locations, dir+"/datarhei-core/config.js")
|
|
||||||
}
|
|
||||||
|
|
||||||
if dir, err := os.UserHomeDir(); err == nil {
|
|
||||||
locations = append(locations, dir+"/.config/datarhei-core/config.js")
|
|
||||||
}
|
|
||||||
|
|
||||||
locations = append(locations, "./config/config.js")
|
|
||||||
|
|
||||||
for _, path := range locations {
|
|
||||||
info, err := os.Stat(path)
|
|
||||||
if err != nil {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
if info.IsDir() {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
configfile = path
|
|
||||||
}
|
|
||||||
|
|
||||||
if len(configfile) == 0 {
|
|
||||||
configfile = "./config/config.js"
|
|
||||||
}
|
|
||||||
|
|
||||||
os.MkdirAll(path.Dir(configfile), 0740)
|
|
||||||
|
|
||||||
return configfile
|
|
||||||
}
|
|
||||||
|
Reference in New Issue
Block a user