60 lines
1.4 KiB
Go
60 lines
1.4 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"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", "配置文件路径")
|
|
verifyJKDAIDCard := flag.String("verify-jkda-id-card", "", "阶段0联调验收:按身份证查询 JKDA00002;为空则不发真实请求")
|
|
flag.Parse()
|
|
|
|
mode, err := parseMode(*modeFlag)
|
|
if err != nil {
|
|
fmt.Fprintln(os.Stderr, err)
|
|
os.Exit(2)
|
|
}
|
|
|
|
cfg, err := config.Load(*configPath)
|
|
if err != nil {
|
|
fmt.Fprintf(os.Stderr, "load config: %v\n", err)
|
|
os.Exit(2)
|
|
}
|
|
|
|
if *verifyJKDAIDCard != "" {
|
|
result, err := runJKDAFindCheck(context.Background(), cfg, *verifyJKDAIDCard)
|
|
if err != nil {
|
|
fmt.Fprintf(os.Stderr, "verify JKDA00002 failed: code=%s message=%s err=%v\n", result.Code, result.Message, err)
|
|
os.Exit(1)
|
|
}
|
|
fmt.Printf("JKDA00002 code=%s message=%s data_count=%d\n", result.Code, result.Message, result.DataCount)
|
|
return
|
|
}
|
|
|
|
fmt.Printf("chis_osi mode=%s\n", mode)
|
|
}
|