package gopher import ( "flag" "gophi/core" ) // setup parses gopher specific flags, and all core flags, preparing server for .Run() func setup() { pWidth := flag.Uint(pageWidthFlagStr, 80, pageWidthDescStr) footerText := flag.String(footerTextFlagStr, "Gophi, a Gopher server in Go!", footerTextDescStr) subgopherSizeMax := flag.Float64(subgopherSizeMaxFlagStr, 1.0, subgopherSizeMaxDescStr) admin := flag.String(adminFlagStr, "", adminDescStr) desc := flag.String(descFlagStr, "", descDescStr) geo := flag.String(geoFlagStr, "", geoDescStr) core.ParseFlagsAndSetup("gopher", generateErrorMessage) // Setup gopher specific global variables subgophermapSizeMax = int64(1048576.0 * *subgopherSizeMax) // convert float to megabytes pageWidth = int(*pWidth) footer = buildFooter(*footerText) gophermapRegex = compileGophermapRegex() // Add generated files to cache if not present p := core.NewPath(core.Root, "caps.txt") if _, err := core.FileSystem.StatFile(p); err != nil { core.SystemLog.Info("Policy file %s not found! Generating...", p.Absolute()) core.FileSystem.AddGeneratedFile(p, generateCapsTxt(*desc, *admin, *geo)) } p = core.NewPath(core.Root, "robots.txt") if _, err := core.FileSystem.StatFile(p); err != nil { core.SystemLog.Info("Policy file %s not found! Generating...", p.Absolute()) core.FileSystem.AddGeneratedFile(p, generateRobotsTxt()) } } // Run does as says :) func Run() { setup() core.Start(serve) }