working parse
This commit is contained in:
parent
013985f76f
commit
7863099925
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
|||||||
mapserver
|
mapserver
|
||||||
|
world.mt
|
||||||
|
8
main.go
8
main.go
@ -2,12 +2,16 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"mapserver/params"
|
"mapserver/params"
|
||||||
|
"mapserver/worldconfig"
|
||||||
|
"fmt"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
params.Parse()
|
p := params.Parse()
|
||||||
p := params.Params()
|
|
||||||
if p.Help {
|
if p.Help {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
worldcfg := worldconfig.Parse(p.Worlddir + "world.mt")
|
||||||
|
fmt.Println("Backend: ", worldcfg.Backend)
|
||||||
}
|
}
|
||||||
|
@ -10,13 +10,7 @@ type ParamsType struct {
|
|||||||
Help bool
|
Help bool
|
||||||
}
|
}
|
||||||
|
|
||||||
var params ParamsType
|
func Parse() ParamsType {
|
||||||
|
|
||||||
func Params() ParamsType {
|
|
||||||
return params
|
|
||||||
}
|
|
||||||
|
|
||||||
func Parse() {
|
|
||||||
params := ParamsType{}
|
params := ParamsType{}
|
||||||
|
|
||||||
flag.StringVar(&(params.Worlddir), "worlddir", "./", "world directory")
|
flag.StringVar(&(params.Worlddir), "worlddir", "./", "world directory")
|
||||||
@ -27,4 +21,6 @@ func Parse() {
|
|||||||
if params.Help {
|
if params.Help {
|
||||||
flag.PrintDefaults()
|
flag.PrintDefaults()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return params
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,53 @@
|
|||||||
package workdconfig
|
package worldconfig
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bufio"
|
||||||
|
"os"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
BACKEND_SQLITE3 string = "sqlite3"
|
||||||
|
BACKEND_FILES string = "files"
|
||||||
|
BACKEND_POSTGRES string = "postgresql"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
CONFIG_BACKEND string = "backend"
|
||||||
|
CONFIG_PLAYER_BACKEND string = "player_backend"
|
||||||
|
)
|
||||||
|
|
||||||
type WorldConfig struct {
|
type WorldConfig struct {
|
||||||
|
Backend string
|
||||||
|
PlayerBackend string
|
||||||
}
|
}
|
||||||
|
|
||||||
func Parse(data []byte) WorldConfig {
|
func Parse(filename string) WorldConfig {
|
||||||
|
file, err := os.Open(filename)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
defer file.Close()
|
||||||
|
|
||||||
|
cfg := WorldConfig{}
|
||||||
|
scanner := bufio.NewScanner(file)
|
||||||
|
for scanner.Scan() {
|
||||||
|
sc := bufio.NewScanner(strings.NewReader(scanner.Text()))
|
||||||
|
sc.Split(bufio.ScanWords)
|
||||||
|
lastPart := ""
|
||||||
|
for sc.Scan() {
|
||||||
|
switch (lastPart) {
|
||||||
|
case CONFIG_BACKEND:
|
||||||
|
cfg.Backend = sc.Text()
|
||||||
|
case CONFIG_PLAYER_BACKEND:
|
||||||
|
cfg.PlayerBackend = sc.Text()
|
||||||
|
}
|
||||||
|
|
||||||
|
if sc.Text() != "=" {
|
||||||
|
lastPart = sc.Text()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return cfg
|
||||||
}
|
}
|
||||||
|
26
worldconfig/parse_test.go
Normal file
26
worldconfig/parse_test.go
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
package worldconfig_test
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
worldconfig "mapserver/worldconfig"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestParseSqlite(t *testing.T) {
|
||||||
|
cfg := worldconfig.Parse("./testdata/world.mt.sqlite")
|
||||||
|
if cfg.Backend != worldconfig.BACKEND_SQLITE3 {
|
||||||
|
t.Fatal("not sqlite3")
|
||||||
|
}
|
||||||
|
if cfg.PlayerBackend != worldconfig.BACKEND_FILES {
|
||||||
|
t.Fatal("not files")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestParsePostgres(t *testing.T) {
|
||||||
|
cfg := worldconfig.Parse("./testdata/world.mt.postgres")
|
||||||
|
if cfg.Backend != worldconfig.BACKEND_POSTGRES {
|
||||||
|
t.Fatal("not postgres")
|
||||||
|
}
|
||||||
|
if cfg.PlayerBackend != worldconfig.BACKEND_POSTGRES {
|
||||||
|
t.Fatal("not postgres")
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user