51 lines
896 B
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 {}
|
|
}
|