package frps

import (
	v1 "github.com/fatedier/frp/pkg/config/v1"
)

var (
	cfgFile          string
	showVersion      bool
	strictConfigMode bool

	serverCfg v1.ServerConfig
)

//func init2() {
//	rootCmd.PersistentFlags().StringVarP(&cfgFile, "config", "c", "frps.ini", "config file of frps")
//	rootCmd.PersistentFlags().BoolVarP(&showVersion, "version", "v", false, "version of frps")
//	rootCmd.PersistentFlags().BoolVarP(&strictConfigMode, "strict_config", "", true, "strict config parsing mode, unknown fields will cause errors")
//
//	config.RegisterServerConfigFlags(rootCmd, &serverCfg)
//}
//
//var rootCmd = &cobra.Command{
//	Use:   "frps",
//	Short: "frps is the server of frp (https://github.com/fatedier/frp)",
//	RunE: func(cmd *cobra.Command, args []string) error {
//		if showVersion {
//			fmt.Println(version.Full())
//			return nil
//		}
//
//		var (
//			svrCfg         *v1.ServerConfig
//			isLegacyFormat bool
//			err            error
//		)
//		if cfgFile != "" {
//			svrCfg, isLegacyFormat, err = config.LoadServerConfig(cfgFile, strictConfigMode)
//			if err != nil {
//				fmt.Println(err)
//				os.Exit(1)
//			}
//			if isLegacyFormat {
//				fmt.Printf("WARNING: ini format is deprecated and the support will be removed in the future, " +
//					"please use yaml/json/toml format instead!\n")
//			}
//		} else {
//			serverCfg.Complete()
//			svrCfg = &serverCfg
//		}
//
//		warning, err := validation.ValidateServerConfig(svrCfg)
//		if warning != nil {
//			fmt.Printf("WARNING: %v\n", warning)
//		}
//		if err != nil {
//			fmt.Println(err)
//			os.Exit(1)
//		}
//
//		if err := runServer(svrCfg); err != nil {
//			fmt.Println(err)
//			os.Exit(1)
//		}
//		return nil
//	},
//}

//func Execute() {
//	rootCmd.SetGlobalNormalizationFunc(config.WordSepNormalizeFunc)
//	if err := rootCmd.Execute(); err != nil {
//		os.Exit(1)
//	}
//}

//func runServer(cfg *v1.ServerConfig) (err error) {
//	log.InitLogger(cfg.Log.To, cfg.Log.Level, int(cfg.Log.MaxDays), cfg.Log.DisablePrintColor)
//
//	if cfgFile != "" {
//		log.Infof("frps uses config file: %s", cfgFile)
//	} else {
//		log.Infof("frps uses command line arguments for config")
//	}
//
//	svr, err := server.NewService(cfg)
//	if err != nil {
//		return err
//	}
//	log.Infof("frps started successfully")
//	svr.Run(context.Background())
//	return
//}
