func main() { flag.Parse() tricorder.RegisterFlags() if os.Geteuid() == 0 { fmt.Fprintln(os.Stderr, "Do not run the Image Server as root") os.Exit(1) } setupTls(*caFile, *certFile, *keyFile) circularBuffer := logbuf.New(*logbufLines) logger := log.New(circularBuffer, "", log.LstdFlags) objSrv, err := filesystem.NewObjectServer(*objectDir, logger) if err != nil { fmt.Fprintf(os.Stderr, "Cannot create ObjectServer\t%s\n", err) os.Exit(1) } imdb, err := scanner.LoadImageDataBase(*imageDir, objSrv, logger) if err != nil { fmt.Fprintf(os.Stderr, "Cannot load image database\t%s\n", err) os.Exit(1) } tricorder.RegisterMetric("/image-count", func() uint { return imdb.CountImages() }, units.None, "number of images") imageserverRpcd.Setup(imdb, logger) rpcHtmlWriter := objectserverRpcd.Setup(objSrv, logger) rpc.HandleHTTP() httpd.AddHtmlWriter(imdb) httpd.AddHtmlWriter(rpcHtmlWriter) httpd.AddHtmlWriter(circularBuffer) if err = httpd.StartServer(*portNum, imdb, false); err != nil { fmt.Fprintf(os.Stderr, "Unable to create http server\t%s\n", err) os.Exit(1) } }
func main() { flag.Parse() if os.Geteuid() == 0 { fmt.Println("Do not run the Image Server as root") os.Exit(1) } circularBuffer := logbuf.New(*logbufLines) logger := log.New(circularBuffer, "", log.LstdFlags) objSrv, err := filesystem.NewObjectServer(*objectDir, logger) if err != nil { fmt.Printf("Cannot create ObjectServer\t%s\n", err) os.Exit(1) } imdb, err := scanner.LoadImageDataBase(*imageDir, objSrv) if err != nil { fmt.Printf("Cannot load image database\t%s\n", err) os.Exit(1) } imageserverRpcd.Setup(imdb, logger) rpcHtmlWriter := objectserverRpcd.Setup(objSrv, logger) rpc.HandleHTTP() httpd.AddHtmlWriter(imdb) httpd.AddHtmlWriter(rpcHtmlWriter) httpd.AddHtmlWriter(circularBuffer) err = httpd.StartServer(*portNum, imdb, false) if err != nil { fmt.Printf("Unable to create http server\t%s\n", err) os.Exit(1) } }
func main() { flag.Parse() tricorder.RegisterFlags() if os.Geteuid() == 0 { fmt.Fprintln(os.Stderr, "Do not run the Image Server as root") os.Exit(1) } if *archiveMode && *imageServerHostname == "" { fmt.Fprintln(os.Stderr, "-imageServerHostname required in archive mode") os.Exit(1) } circularBuffer := logbuf.New() logger := log.New(circularBuffer, "", log.LstdFlags) if err := setupserver.SetupTls(); err != nil { logger.Println(err) circularBuffer.Flush() if !*permitInsecureMode { os.Exit(1) } } objSrv, err := filesystem.NewObjectServer(*objectDir, logger) if err != nil { fmt.Fprintf(os.Stderr, "Cannot create ObjectServer: %s\n", err) os.Exit(1) } cleanupUnreferencedObjects := true if *imageServerHostname != "" { cleanupUnreferencedObjects = false } imdb, err := scanner.LoadImageDataBase(*imageDir, objSrv, cleanupUnreferencedObjects, logger) if err != nil { fmt.Fprintf(os.Stderr, "Cannot load image database: %s\n", err) os.Exit(1) } tricorder.RegisterMetric("/image-count", func() uint { return imdb.CountImages() }, units.None, "number of images") imgSrvRpcHtmlWriter := imageserverRpcd.Setup(imdb, *imageServerHostname, logger) objSrvRpcHtmlWriter := objectserverRpcd.Setup(objSrv, logger) httpd.AddHtmlWriter(imdb) httpd.AddHtmlWriter(&imageObjectServersType{imdb, objSrv}) httpd.AddHtmlWriter(imgSrvRpcHtmlWriter) httpd.AddHtmlWriter(objSrvRpcHtmlWriter) httpd.AddHtmlWriter(circularBuffer) if *imageServerHostname != "" { go replicator(fmt.Sprintf("%s:%d", *imageServerHostname, *imageServerPortNum), imdb, objSrv, *archiveMode, logger) } if err = httpd.StartServer(*portNum, imdb, objSrv, false); err != nil { fmt.Fprintf(os.Stderr, "Unable to create http server: %s\n", err) os.Exit(1) } }