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.

38 lines
1.2 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()
// Generate capability files
capsTxt := generateCapsTxt(*desc, *admin, *geo)
robotsTxt := generateRobotsTxt()
// Add generated files to cache
core.FileSystem.AddGeneratedFile(core.NewPath(core.Root, "caps.txt"), capsTxt)
core.FileSystem.AddGeneratedFile(core.NewPath(core.Root, "robots.txt"), robotsTxt)
}
// Run does as says :)
func Run() {
setup()
core.Start(serve)
}