// Copyright 2016 The go-qemu Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package main import ( "embed" "os" "time" "go.wit.com/dev/alexflint/arg" "go.wit.com/lib/protobuf/zoopb" "go.wit.com/log" ) var VERSION string var BUILDTIME string //go:embed resources/* var resources embed.FS func main() { var pp *arg.Parser pp = arg.MustParse(&argv) if pp == nil { pp.WriteHelp(os.Stdout) os.Exit(0) } if argv.Daemon { // turn off timestamps for STDOUT (systemd adds them) log.DaemonMode(true) } me = new(stuff) me.hostname, _ = os.Hostname() me.pollDelay = 10 * time.Second me.machines = new(zoopb.Machines) if err := me.machines.ConfigLoad(); err != nil { log.Warn("load config failed", err) os.Exit(-1) } me.targets = make(map[string]string) // keep track of what versions the machines should be running me.upgrade = make(map[string]bool) // used to trigger upgrade attempts go NewWatchdog() startHTTP() }