39 lines
972 B
Go
39 lines
972 B
Go
package cmd
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"github.com/ESilva15/BeamNGMockOg/mockserver"
|
|
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
func replayAction(cmd *cobra.Command, args []string) {
|
|
inputFile, _ := cmd.Flags().GetString("input")
|
|
address, _ := cmd.Flags().GetString("address")
|
|
port, _ := cmd.Flags().GetInt("port")
|
|
loop, _ := cmd.Flags().GetBool("loop")
|
|
|
|
ctx := context.Background()
|
|
if err := mockserver.Replay(ctx, address, port, loop, inputFile); err != nil {
|
|
fmt.Printf("Something went wrong while playing the file: %v", err)
|
|
}
|
|
}
|
|
|
|
// shelf
|
|
var replayCmd = &cobra.Command{
|
|
Use: "replay",
|
|
Short: "replay -i <path-to-bin-file>",
|
|
Long: `replay will replay the data on the given filepath on a UDP server`,
|
|
Args: nil,
|
|
Run: replayAction,
|
|
}
|
|
|
|
func init() {
|
|
rootCmd.AddCommand(replayCmd)
|
|
|
|
replayCmd.PersistentFlags().StringP("input", "i", "nofile.bin", "input file for serving")
|
|
replayCmd.PersistentFlags().BoolP("loop", "l", false, "loop replay after finishing")
|
|
}
|