mirror of
https://github.com/teest114514/chatlog_alpha.git
synced 2026-03-22 19:00:19 +08:00
79 lines
2.1 KiB
Go
79 lines
2.1 KiB
Go
package chatlog
|
|
|
|
import (
|
|
"github.com/rs/zerolog/log"
|
|
"github.com/spf13/cobra"
|
|
|
|
"github.com/sjzar/chatlog/internal/chatlog"
|
|
)
|
|
|
|
func init() {
|
|
rootCmd.AddCommand(serverCmd)
|
|
serverCmd.PersistentPreRun = initLog
|
|
serverCmd.PersistentFlags().BoolVar(&Debug, "debug", false, "debug")
|
|
serverCmd.Flags().StringVarP(&serverAddr, "addr", "a", "", "server address")
|
|
serverCmd.Flags().StringVarP(&serverPlatform, "platform", "p", "", "platform")
|
|
serverCmd.Flags().IntVarP(&serverVer, "version", "v", 0, "version")
|
|
serverCmd.Flags().StringVarP(&serverDataDir, "data-dir", "d", "", "data dir")
|
|
serverCmd.Flags().StringVarP(&serverDataKey, "data-key", "k", "", "data key")
|
|
serverCmd.Flags().StringVarP(&serverImgKey, "img-key", "i", "", "img key")
|
|
serverCmd.Flags().StringVarP(&serverWorkDir, "work-dir", "w", "", "work dir")
|
|
serverCmd.Flags().BoolVarP(&serverAutoDecrypt, "auto-decrypt", "", false, "auto decrypt")
|
|
}
|
|
|
|
var (
|
|
serverAddr string
|
|
serverDataDir string
|
|
serverDataKey string
|
|
serverImgKey string
|
|
serverWorkDir string
|
|
serverPlatform string
|
|
serverVer int
|
|
serverAutoDecrypt bool
|
|
)
|
|
|
|
var serverCmd = &cobra.Command{
|
|
Use: "server",
|
|
Short: "Start HTTP server",
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
|
|
cmdConf := getServerConfig()
|
|
log.Info().Msgf("server cmd config: %+v", cmdConf)
|
|
|
|
m := chatlog.New()
|
|
if err := m.CommandHTTPServer("", cmdConf); err != nil {
|
|
log.Err(err).Msg("failed to start server")
|
|
return
|
|
}
|
|
},
|
|
}
|
|
|
|
func getServerConfig() map[string]any {
|
|
cmdConf := make(map[string]any)
|
|
if len(serverAddr) != 0 {
|
|
cmdConf["http_addr"] = serverAddr
|
|
}
|
|
if len(serverDataDir) != 0 {
|
|
cmdConf["data_dir"] = serverDataDir
|
|
}
|
|
if len(serverDataKey) != 0 {
|
|
cmdConf["data_key"] = serverDataKey
|
|
}
|
|
if len(serverImgKey) != 0 {
|
|
cmdConf["img_key"] = serverImgKey
|
|
}
|
|
if len(serverWorkDir) != 0 {
|
|
cmdConf["work_dir"] = serverWorkDir
|
|
}
|
|
if len(serverPlatform) != 0 {
|
|
cmdConf["platform"] = serverPlatform
|
|
}
|
|
if serverVer != 0 {
|
|
cmdConf["version"] = serverVer
|
|
}
|
|
if serverAutoDecrypt {
|
|
cmdConf["auto_decrypt"] = true
|
|
}
|
|
return cmdConf
|
|
}
|