mirror of
				https://github.com/onyx-and-iris/vbantxt.git
				synced 2025-10-30 21:11:50 +00:00 
			
		
		
		
	remove old cli files
This commit is contained in:
		
							parent
							
								
									d0bd5ca31a
								
							
						
					
					
						commit
						a6b20bf676
					
				
							
								
								
									
										142
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										142
									
								
								main.go
									
									
									
									
									
								
							| @ -1,142 +0,0 @@ | |||||||
| package main |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"bytes" |  | ||||||
| 	"encoding/binary" |  | ||||||
| 	"flag" |  | ||||||
| 	"fmt" |  | ||||||
| 	"net" |  | ||||||
| 	"os" |  | ||||||
| 	"path/filepath" |  | ||||||
| 	"time" |  | ||||||
| 
 |  | ||||||
| 	"github.com/BurntSushi/toml" |  | ||||||
| 
 |  | ||||||
| 	log "github.com/sirupsen/logrus" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| var ( |  | ||||||
| 	host       string |  | ||||||
| 	port       int |  | ||||||
| 	streamname string |  | ||||||
| 	bps        int |  | ||||||
| 	channel    int |  | ||||||
| 	delay      int |  | ||||||
| 	loglevel   int |  | ||||||
| 
 |  | ||||||
| 	bpsOpts = []int{0, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 31250, |  | ||||||
| 		38400, 57600, 115200, 128000, 230400, 250000, 256000, 460800, 921600, |  | ||||||
| 		1000000, 1500000, 2000000, 3000000} |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| type ( |  | ||||||
| 	// connection represents the configurable fields of a config.toml |  | ||||||
| 	connection struct { |  | ||||||
| 		Host       string |  | ||||||
| 		Port       int |  | ||||||
| 		Streamname string |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	// config maps toml headers |  | ||||||
| 	config struct { |  | ||||||
| 		Connection map[string]connection |  | ||||||
| 	} |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| func main() { |  | ||||||
| 	flag.StringVar(&host, "host", "localhost", "vban host") |  | ||||||
| 	flag.StringVar(&host, "h", "localhost", "vban host (shorthand)") |  | ||||||
| 	flag.IntVar(&port, "port", 6980, "vban server port") |  | ||||||
| 	flag.IntVar(&port, "p", 6980, "vban server port (shorthand)") |  | ||||||
| 	flag.StringVar(&streamname, "streamname", "Command1", "stream name for text requests") |  | ||||||
| 	flag.StringVar(&streamname, "s", "Command1", "stream name for text requests (shorthand)") |  | ||||||
| 	flag.IntVar(&bps, "bps", 0, "vban bps") |  | ||||||
| 	flag.IntVar(&bps, "b", 0, "vban bps (shorthand)") |  | ||||||
| 	flag.IntVar(&channel, "channel", 0, "vban channel") |  | ||||||
| 	flag.IntVar(&channel, "c", 0, "vban channel (shorthand)") |  | ||||||
| 	flag.IntVar(&delay, "delay", 20, "delay between requests") |  | ||||||
| 	flag.IntVar(&delay, "d", 20, "delay between requests (shorthand)") |  | ||||||
| 	flag.IntVar(&loglevel, "loglevel", int(log.WarnLevel), "log level") |  | ||||||
| 	flag.IntVar(&loglevel, "l", int(log.WarnLevel), "log level (shorthand)") |  | ||||||
| 	flag.Parse() |  | ||||||
| 
 |  | ||||||
| 	if loglevel >= int(log.PanicLevel) && loglevel <= int(log.TraceLevel) { |  | ||||||
| 		log.SetLevel(log.Level(loglevel)) |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	c, err := vbanConnect() |  | ||||||
| 	if err != nil { |  | ||||||
| 		log.Fatal(err) |  | ||||||
| 	} |  | ||||||
| 	defer c.Close() |  | ||||||
| 
 |  | ||||||
| 	header := newRequestHeader(streamname, indexOf(bpsOpts, bps), channel) |  | ||||||
| 	for _, arg := range flag.Args() { |  | ||||||
| 		err := send(c, header, arg) |  | ||||||
| 		if err != nil { |  | ||||||
| 			log.Error(err.Error()) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // vbanConnect establishes a VBAN connection to remote host |  | ||||||
| func vbanConnect() (*net.UDPConn, error) { |  | ||||||
| 	homeDir, err := os.UserHomeDir() |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	f := filepath.Join(homeDir, ".vbantxt_cli", "config.toml") |  | ||||||
| 	if _, err := os.Stat(f); err == nil { |  | ||||||
| 		conn, err := connFromToml(f) |  | ||||||
| 		if err != nil { |  | ||||||
| 			return nil, err |  | ||||||
| 		} |  | ||||||
| 		if !isFlagPassed("h") && !isFlagPassed("host") { |  | ||||||
| 			host = conn.Host |  | ||||||
| 		} |  | ||||||
| 		if !isFlagPassed("p") && !isFlagPassed("port") { |  | ||||||
| 			port = conn.Port |  | ||||||
| 		} |  | ||||||
| 		if !isFlagPassed("s") && !isFlagPassed("streamname") { |  | ||||||
| 			streamname = conn.Streamname |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	log.Debugf("Using values host: %s port: %d streamname: %s", host, port, streamname) |  | ||||||
| 
 |  | ||||||
| 	s, _ := net.ResolveUDPAddr("udp4", fmt.Sprintf("%s:%d", host, port)) |  | ||||||
| 	c, err := net.DialUDP("udp4", nil, s) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	log.Infof("Connected to %s", c.RemoteAddr()) |  | ||||||
| 
 |  | ||||||
| 	return c, nil |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // connFromToml parses connection info from config.toml |  | ||||||
| func connFromToml(f string) (*connection, error) { |  | ||||||
| 	var c config |  | ||||||
| 	_, err := toml.DecodeFile(f, &c.Connection) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 	conn := c.Connection["connection"] |  | ||||||
| 	return &conn, nil |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // send sends a VBAN text request over UDP to remote host |  | ||||||
| func send(c *net.UDPConn, h *requestHeader, msg string) error { |  | ||||||
| 	log.Debugf("Sending '%s' to: %s", msg, c.RemoteAddr()) |  | ||||||
| 	data := []byte(msg) |  | ||||||
| 	_, err := c.Write(append(h.header(), data...)) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return err |  | ||||||
| 	} |  | ||||||
| 	var a uint32 |  | ||||||
| 	_ = binary.Read(bytes.NewReader(h.framecounter[:]), binary.LittleEndian, &a) |  | ||||||
| 	binary.LittleEndian.PutUint32(h.framecounter[:], a+1) |  | ||||||
| 
 |  | ||||||
| 	time.Sleep(time.Duration(delay) * time.Millisecond) |  | ||||||
| 
 |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
							
								
								
									
										23
									
								
								util.go
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								util.go
									
									
									
									
									
								
							| @ -1,23 +0,0 @@ | |||||||
| package main |  | ||||||
| 
 |  | ||||||
| import "flag" |  | ||||||
| 
 |  | ||||||
| // indexOf returns the index of an element in an array |  | ||||||
| func indexOf[T comparable](collection []T, e T) int { |  | ||||||
| 	for i, x := range collection { |  | ||||||
| 		if x == e { |  | ||||||
| 			return i |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return -1 |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func isFlagPassed(name string) bool { |  | ||||||
| 	found := false |  | ||||||
| 	flag.Visit(func(f *flag.Flag) { |  | ||||||
| 		if f.Name == name { |  | ||||||
| 			found = true |  | ||||||
| 		} |  | ||||||
| 	}) |  | ||||||
| 	return found |  | ||||||
| } |  | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user