40 lines
1.1 KiB
Go
40 lines
1.1 KiB
Go
package utils
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
|
|
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/config"
|
|
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/services"
|
|
"github.com/dexidp/dex/storage"
|
|
)
|
|
|
|
// Fail displays the given error to stderr and exits the program with a returncode 1
|
|
func Fail(errMsg string) {
|
|
fmt.Fprintln(os.Stderr, errMsg)
|
|
os.Exit(1)
|
|
}
|
|
|
|
// Fail displays the given formatted error to stderr and exits the program with a returncode 1
|
|
func Failf(msg string, args ...any) {
|
|
fmt.Fprintf(os.Stderr, msg+"\n", args...)
|
|
os.Exit(1)
|
|
}
|
|
|
|
// InitConfig inits the configuration, and fails the program if an error occurs
|
|
func InitConfig(configPath string) *config.AppConfig {
|
|
conf, err := config.New(configPath)
|
|
if err != nil {
|
|
Failf("Failed to load the configuration: %s", err.Error())
|
|
}
|
|
return conf
|
|
}
|
|
|
|
// Initstorage inits the storage, and fails the program if an error occurs
|
|
func InitStorage(config *config.AppConfig) storage.Storage {
|
|
s, err := services.InitStorage(config)
|
|
if err != nil {
|
|
Failf("Failed to init the storage: %s", err.Error())
|
|
}
|
|
return s
|
|
}
|