package main

import (
	"flag"
	"os"
	"path/filepath"

	"github.com/tidbcloud/cluster-service-ng/pkg/autoscale/app"
	"k8s.io/component-base/logs"
	"k8s.io/klog/v2"
)

func main() {
	var configPath string
	flag.StringVar(&configPath, "config", "", "Path to the configuration file")
	logs.InitLogs()
	defer logs.FlushLogs()
	flag.Parse()

	if configPath == "" {
		execPath, err := os.Executable()
		if err != nil {
			klog.Fatalf("failed to get executable path: %v", err)
		}
		execDir := filepath.Dir(execPath)
		execName := filepath.Base(execPath)
		configPath = filepath.Join(execDir, execName+".yaml")
	}

	cfg, err := app.LoadConfigFromFile(configPath)
	if err != nil {
		klog.Fatalf("failed to load autoscale config from %s: %v", configPath, err)
	}

	if err := app.Run(cfg); err != nil {
		klog.Fatalf("autoscale error: %v", err)
	}
}
