2020-10-16 17:13:46 +02:00
package main
import (
2020-10-26 08:39:12 +01:00
"fmt"
2020-10-16 17:13:46 +02:00
"os"
2020-10-28 10:15:13 +01:00
"time"
2020-10-16 17:13:46 +02:00
"github.com/pborman/getopt"
)
2020-10-26 09:09:30 +01:00
var verboseLog bool
2020-10-16 17:13:46 +02:00
var connectAddress string
2020-10-25 16:15:39 +01:00
var serialTCPPort uint16
2020-10-25 21:12:59 +01:00
var enableSerialDevice bool
2020-10-29 20:28:17 +01:00
var runCmd string
2020-11-01 16:08:34 +01:00
var disableReRunCmd bool
2020-10-30 15:21:19 +01:00
var runCmdOnSerialPortCreated string
2020-10-28 10:15:13 +01:00
var statusLogInterval time . Duration
2020-10-16 17:13:46 +02:00
func parseArgs ( ) {
h := getopt . BoolLong ( "help" , 'h' , "display help" )
2020-10-26 09:09:30 +01:00
v := getopt . BoolLong ( "verbose" , 'v' , "Enable verbose (debug) logging" )
2020-10-16 17:13:46 +02:00
a := getopt . StringLong ( "address" , 'a' , "IC-705" , "Connect to address" )
2020-10-25 22:23:37 +01:00
t := getopt . Uint16Long ( "serial-tcp-port" , 'p' , 4533 , "Expose radio's serial port on this TCP port" )
2020-10-25 21:12:59 +01:00
s := getopt . BoolLong ( "enable-serial-device" , 's' , "Expose radio's serial port as a virtual serial port" )
2020-10-29 20:28:17 +01:00
r := getopt . StringLong ( "run" , 'r' , "rigctld -m 3085 -r :4533" , "Exec cmd when connected, set to - to disable" )
2020-11-01 16:08:34 +01:00
e := getopt . BoolLong ( "disable-rerun" , 'e' , "Disable re-execing the cmd on TCP serial port disconnect" )
2020-10-30 15:21:19 +01:00
o := getopt . StringLong ( "run-serial" , 'o' , "socat /tmp/kappanhang-IC-705.pty /tmp/vmware.pty" , "Exec cmd when virtual serial port is created, set to - to disable" )
2020-10-29 09:39:13 +01:00
i := getopt . Uint16Long ( "log-interval" , 'i' , 100 , "Status bar/log interval in milliseconds" )
2020-10-16 17:13:46 +02:00
getopt . Parse ( )
if * h || * a == "" {
2020-10-26 08:39:12 +01:00
fmt . Println ( getAboutStr ( ) )
2020-10-16 17:13:46 +02:00
getopt . Usage ( )
os . Exit ( 1 )
}
2020-10-26 09:09:30 +01:00
verboseLog = * v
2020-10-16 17:13:46 +02:00
connectAddress = * a
2020-10-25 16:15:39 +01:00
serialTCPPort = * t
2020-10-25 21:12:59 +01:00
enableSerialDevice = * s
2020-10-29 20:28:17 +01:00
runCmd = * r
2020-11-01 16:08:34 +01:00
disableReRunCmd = * e
2020-10-30 15:21:19 +01:00
runCmdOnSerialPortCreated = * o
2020-10-28 10:15:13 +01:00
statusLogInterval = time . Duration ( * i ) * time . Millisecond
2020-10-16 17:13:46 +02:00
}