Feat: auto opt file path to data-dir

pull/21/head
zijiren233 2 years ago
parent 1aa9470f89
commit b23a52fb50

@ -15,6 +15,7 @@ import (
"github.com/synctv-org/synctv/internal/rtmp"
sysnotify "github.com/synctv-org/synctv/internal/sysNotify"
"github.com/synctv-org/synctv/server"
"github.com/synctv-org/synctv/utils"
)
var ServerCmd = &cobra.Command{
@ -63,6 +64,8 @@ func Server(cmd *cobra.Command, args []string) {
if err != nil {
log.Fatal(err)
}
utils.OptFilePath(&conf.Conf.Server.CertPath)
utils.OptFilePath(&conf.Conf.Server.KeyPath)
if conf.Conf.Rtmp.Enable {
if useMux {
muxer := cmux.New(serverListener)

@ -28,11 +28,7 @@ func InitConfig(ctx context.Context) error {
if flags.ConfigFile == "" {
flags.ConfigFile = filepath.Join(flags.DataDir, "config.yaml")
} else {
fileAbs, err := filepath.Abs(flags.ConfigFile)
if err != nil {
log.Fatalf("get config file abs path error: %v", err)
}
flags.ConfigFile = fileAbs
utils.OptFilePath(&flags.ConfigFile)
}
err := confFromConfig(flags.ConfigFile, conf.Conf)
if err != nil {

@ -4,7 +4,6 @@ import (
"context"
"database/sql"
"fmt"
"path/filepath"
"strings"
"time"
@ -13,6 +12,7 @@ import (
"github.com/synctv-org/synctv/cmd/flags"
"github.com/synctv-org/synctv/internal/conf"
"github.com/synctv-org/synctv/internal/db"
"github.com/synctv-org/synctv/utils"
"gorm.io/driver/mysql"
"gorm.io/driver/postgres"
"gorm.io/gorm"
@ -67,9 +67,7 @@ func InitDatabase(ctx context.Context) error {
if !strings.HasSuffix(conf.Conf.Database.DBName, ".db") {
conf.Conf.Database.DBName = conf.Conf.Database.DBName + ".db"
}
if !filepath.IsAbs(conf.Conf.Database.DBName) {
conf.Conf.Database.DBName = filepath.Join(flags.DataDir, conf.Conf.Database.DBName)
}
utils.OptFilePath(&conf.Conf.Database.DBName)
dsn = fmt.Sprintf("%s?_journal_mode=WAL&_vacuum=incremental&_pragma=foreign_keys(1)", conf.Conf.Database.DBName)
log.Infof("sqlite3 database file: %s", conf.Conf.Database.DBName)
}

@ -5,12 +5,12 @@ import (
"io"
"log"
"os"
"path/filepath"
"github.com/natefinch/lumberjack"
"github.com/sirupsen/logrus"
"github.com/synctv-org/synctv/cmd/flags"
"github.com/synctv-org/synctv/internal/conf"
"github.com/synctv-org/synctv/utils"
"github.com/zijiren233/go-colorable"
)
@ -27,9 +27,7 @@ func setLog(l *logrus.Logger) {
func InitLog(ctx context.Context) error {
setLog(logrus.StandardLogger())
if conf.Conf.Log.Enable {
if !filepath.IsAbs(conf.Conf.Log.FilePath) {
conf.Conf.Log.FilePath = filepath.Join(flags.DataDir, conf.Conf.Log.FilePath)
}
utils.OptFilePath(&conf.Conf.Log.FilePath)
var l = &lumberjack.Logger{
Filename: conf.Conf.Log.FilePath,
MaxSize: conf.Conf.Log.MaxSize,

@ -11,6 +11,7 @@ import (
"sync"
"sync/atomic"
"github.com/synctv-org/synctv/cmd/flags"
yamlcomment "github.com/zijiren233/yaml-comment"
"gopkg.in/yaml.v3"
)
@ -230,3 +231,12 @@ func getLocalIPs() []net.IP {
return localIPs
}
func OptFilePath(filePath *string) {
if filePath == nil || *filePath == "" {
return
}
if !filepath.IsAbs(*filePath) {
*filePath = filepath.Join(flags.DataDir, *filePath)
}
}

Loading…
Cancel
Save