You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.4 KiB
Go

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)
}