package main import ( "log" "os" "sync" ) var config Config func main() { config.load() //TODO: only log to file if flagged logfile, err := openLogfile() if err != nil { log.Printf("error opening logfile %v: %v", config.Cache, err) } log.SetOutput(logfile) log.SetFlags(log.LstdFlags | log.Lshortfile | log.Lmicroseconds) log.Println("Welcome to GoPaper!") 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 = config.Default } slideshowDir <- dir waitGroup.Wait() } func openLogfile() (*os.File, error) { //TODO: log rotation f, err := os.OpenFile(config.Cache+"/logfile", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) if err != nil { return nil, err } return f, nil }