radiod.go 792 B
package main
import (
"flag"
"log"
"os"
"os/signal"
"syscall"
"git.autistici.org/ale/autoradio"
"git.autistici.org/ale/autoradio/node"
)
var (
publicIp = flag.String("ip", "127.0.0.1", "Public IP for this machine")
netDev = flag.String("interface", "eth0", "Network interface to monitor for utilization")
bwLimit = flag.Int("bwlimit", 100, "Bandwidth usage limit (Mbps)")
)
func main() {
flag.Parse()
client := autoradio.NewEtcdClient()
bwLimitBytes := float64(*bwLimit * 1000000 / 8)
n := node.NewRadioNode(*publicIp, *netDev, bwLimitBytes, client)
// Set up a clean shutdown function on SIGTERM.
stopch := make(chan os.Signal)
go func() {
<- stopch
log.Printf("terminating...")
n.Stop()
}()
signal.Notify(stopch, syscall.SIGTERM, syscall.SIGINT)
n.Run()
}