package main import ( "flag" "fmt" "os" "chis_osi/config" ) type appMode string const ( modeServer appMode = "server" modeDeliver appMode = "deliver" ) func parseMode(raw string) (appMode, error) { switch appMode(raw) { case modeServer: return modeServer, nil case modeDeliver: return modeDeliver, nil default: return "", fmt.Errorf("invalid mode %q, want server or deliver", raw) } } func main() { modeFlag := flag.String("mode", string(modeServer), "运行模式:server 或 deliver") configPath := flag.String("config", "config.yaml", "配置文件路径") flag.Parse() mode, err := parseMode(*modeFlag) if err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(2) } _, err = config.Load(*configPath) if err != nil { fmt.Fprintf(os.Stderr, "load config: %v\n", err) os.Exit(2) } fmt.Printf("chis_osi mode=%s\n", mode) }