Plugging in main
This commit is contained in:
parent
a252110fcd
commit
5397775ab7
|
@ -21,8 +21,11 @@ import (
|
|||
var (
|
||||
debug = flag.Bool("debug", false, "Enable debug logging")
|
||||
addr = flag.String("addr", ":8080", "Address to bind to, in the 'ipaddress:port' format")
|
||||
startNow = flag.Bool("start", false, "If set, try to start the process now")
|
||||
tlsCert = flag.String("tls-cert", "", "Path to certificate file for TLS connection")
|
||||
tlsKey = flag.String("tls-key", "", "Path to key file for TLS connection")
|
||||
systemd = flag.Bool("systemd", false, "Interpret as systemd unit")
|
||||
user = flag.Bool("systemd-as-user", false, "Connect to systemd via DBus as current user")
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
@ -41,10 +44,26 @@ func main() {
|
|||
logger.SetLevel(logz.LogDebug)
|
||||
}
|
||||
|
||||
prog := flag.Arg(0)
|
||||
cmdLine := flag.Args()[1:]
|
||||
runnableName := flag.Arg(0)
|
||||
|
||||
radio, err := broadcast.NewRadio(logger, prog, cmdLine...)
|
||||
var runnable broadcast.Runnable
|
||||
var err error
|
||||
|
||||
if *systemd {
|
||||
runnable = broadcast.NewSystemdUnit(logger, runnableName, *user)
|
||||
} else {
|
||||
cmdLine := flag.Args()[1:]
|
||||
runnable, err = broadcast.NewProcess(logger, runnableName, cmdLine...)
|
||||
}
|
||||
if err != nil {
|
||||
logger.Err(map[string]any{
|
||||
"msg": "Failed to create runnable process",
|
||||
"err": err.Error(),
|
||||
})
|
||||
os.Exit(2)
|
||||
}
|
||||
|
||||
radio, err := broadcast.NewRadio(logger, runnable)
|
||||
if err != nil {
|
||||
logger.Err(map[string]any{
|
||||
"msg": "Failed to start",
|
||||
|
@ -83,15 +102,6 @@ func main() {
|
|||
"context": "os",
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
||||
go func() {
|
||||
for {
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
return
|
||||
case <-stop:
|
||||
resp := <-radio.Stop()
|
||||
if resp != nil {
|
||||
|
@ -106,15 +116,6 @@ func main() {
|
|||
"context": "os",
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
||||
go func() {
|
||||
for {
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
return
|
||||
case <-status:
|
||||
resp := <-radio.Status()
|
||||
for i, line := range resp.([]string) {
|
||||
|
@ -128,6 +129,7 @@ func main() {
|
|||
}
|
||||
}()
|
||||
|
||||
if *startNow {
|
||||
go func() {
|
||||
resp, err := withTimeout(ctx, radio.Start())
|
||||
if err != nil {
|
||||
|
@ -146,6 +148,7 @@ func main() {
|
|||
}
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
handler, err := setupHandler(radio, logger, *addr)
|
||||
if err != nil {
|
||||
|
|
Loading…
Reference in New Issue
Block a user