package main import ( "log" "os" "sync" ) var config Config const sockfile = "/tmp/gopaper.sock" func main() { //TODO:kill existing processes log.SetFlags(log.LstdFlags | log.Lshortfile) err := config.load() if err != nil { log.Println("failed to load config", err) cleanExit(1) } log.Printf("%+v\n", config) var waitGroup sync.WaitGroup waitGroup.Add(1) slideshowDir := make(chan string) go server(slideshowDir) go slideshow(slideshowDir) var dir string args := os.Args[1:] if len(args) > 0 { dir = args[0] } else { dir = "" } slideshowDir <- dir waitGroup.Wait() } func cleanExit(code int) { os.Remove(sockfile) os.Exit(code) }