diff --git a/cmd/forward.go b/cmd/forward.go new file mode 100644 index 0000000000..c17a2510bb --- /dev/null +++ b/cmd/forward.go @@ -0,0 +1,31 @@ +package cmd + +import ( + "fmt" + "strings" + + "github.com/spf13/cobra" + + "github.com/iyear/tdl/app/forward" + "github.com/iyear/tdl/pkg/forwarder" + "github.com/iyear/tdl/pkg/logger" +) + +func NewForward() *cobra.Command { + var opts forward.Options + + cmd := &cobra.Command{ + Use: "forward", + Short: "Forward messages with automatic fallback and message routing", + RunE: func(cmd *cobra.Command, args []string) error { + return forward.Run(logger.Named(cmd.Context(), "forward"), opts) + }, + } + + cmd.Flags().StringArrayVar(&opts.From, "from", []string{}, "messages to be forwarded, can be links or exported JSON files") + cmd.Flags().StringVar(&opts.To, "to", "", "destination peer, can be a CHAT or router based on expression engine") + cmd.Flags().Var(&opts.Mode, "mode", fmt.Sprintf("forward mode: [%s]", strings.Join(forwarder.ModeNames(), ", "))) + cmd.Flags().BoolVar(&opts.Silent, "silent", false, "send messages silently") + + return cmd +} diff --git a/cmd/root.go b/cmd/root.go index 3977ae443f..fcc50443eb 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -40,7 +40,7 @@ func New() *cobra.Command { }, } - cmd.AddCommand(NewVersion(), NewLogin(), NewDownload(), + cmd.AddCommand(NewVersion(), NewLogin(), NewDownload(), NewForward(), NewChat(), NewUpload(), NewBackup(), NewRecover(), NewGen()) cmd.PersistentFlags().String(consts.FlagProxy, "", "proxy address, only socks5 is supported, format: protocol://username:password@host:port")