Skip to content
Snippets Groups Projects
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()
}