48 lines
864 B
Go
48 lines
864 B
Go
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)
|
||
|
|
}
|