moth/cmd/mothd/main.go

54 lines
971 B
Go

package main
import (
"github.com/namsral/flag"
"github.com/spf13/afero"
"log"
"time"
)
func main() {
log.Print("Started")
themePath := flag.String(
"theme",
"theme",
"Path to theme files",
)
statePath := flag.String(
"state",
"state",
"Path to state files",
)
puzzlePath := flag.String(
"mothballs",
"mothballs",
"Path to mothballs to host",
)
refreshInterval := flag.Duration(
"refresh",
2*time.Second,
"Duration between maintenance tasks",
)
bindStr := flag.String(
"bind",
":8000",
"Bind [host]:port for HTTP service",
)
stateFs := afero.NewBasePathFs(afero.NewOsFs(), *statePath)
theme := NewTheme(*themePath)
state := NewState(stateFs)
puzzles := NewMothballs(*puzzlePath)
go theme.Run(*refreshInterval)
go state.Run(*refreshInterval)
go puzzles.Run(*refreshInterval)
log.Println("I would be binding to", *bindStr)
time.Sleep(1 * time.Second)
log.Print(state.Export(""))
time.Sleep(19 * time.Second)
}