forked from ebhomengo/niki
53 lines
1.0 KiB
Go
53 lines
1.0 KiB
Go
package driverapp
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"path/filepath"
|
|
|
|
"git.gocasts.ir/ebhomengo/niki/driverapp"
|
|
cfgloader "git.gocasts.ir/ebhomengo/niki/pkg/cfg_loader2"
|
|
"git.gocasts.ir/ebhomengo/niki/pkg/migrator"
|
|
"git.gocasts.ir/ebhomengo/niki/repository/mysql"
|
|
)
|
|
|
|
func main() {
|
|
var cfg driverapp.Config
|
|
|
|
workingDir, err := os.Getwd()
|
|
if err != nil {
|
|
fmt.Printf("Error getting current working directory: %v", err)
|
|
}
|
|
|
|
options := cfgloader.Option{
|
|
Prefix: "DRIVER_",
|
|
Delimiter: ".",
|
|
Separator: "__",
|
|
YamlFilePath: filepath.Join(workingDir, "deploy", "driver", "development", "config.yaml"),
|
|
CallbackEnv: nil,
|
|
}
|
|
|
|
lErr := cfgloader.Load(options, &cfg)
|
|
if lErr != nil {
|
|
log.Fatalf("Failed to load driver config: %v", err)
|
|
}
|
|
|
|
conn := mysql.New(cfg.MysqlDB)
|
|
|
|
mgr := migrator.New(cfg.MysqlDB, cfg.PathOfMigration)
|
|
|
|
migrate := flag.Bool("migrate", false, "perform database migrations")
|
|
flag.Parse()
|
|
|
|
if *migrate {
|
|
fmt.Println("Running migrations")
|
|
mgr.Up()
|
|
}
|
|
|
|
dapp := driverapp.Setup(cfg, conn)
|
|
dapp.Start()
|
|
|
|
}
|