beehive/cmd/workerbee/main.go

51 lines
896 B
Go

package main
import (
"flag"
"log"
"os"
"time"
"code.rocketnine.space/tslocum/beehive"
)
var worker *beehive.Worker
const retryDelay = time.Second * 2
func main() {
var (
configPath string
)
flag.StringVar(&configPath, "config", "", "path to configuration file")
flag.Parse()
parseConfig(configPath)
// Create deployments directory if it doesn't exist.
_, err := os.Stat(config.DeploymentsDir)
if os.IsNotExist(err) {
err = os.MkdirAll(config.DeploymentsDir, 0700)
if err != nil {
log.Fatal(err)
}
}
log.Println("Verifying Docker is running and available...")
for {
_, _, err := beehive.Docker("/", []string{"ps"})
if err != nil {
log.Printf("Failed to connect to Docker daemon: %s", err)
time.Sleep(retryDelay)
continue
}
break
}
log.Println("Connected to Docker successfully")
worker = beehive.NewWorker(config)
_ = worker
select {}
}