Browse Source

⚗ Gorilla mux

master
n0m1s 7 years ago
parent
commit
e1476287df
Signed by: nomis GPG Key ID: BC0454CAD76FE803
7 changed files with 130 additions and 0 deletions
  1. +61
    -0
      config.go
  2. +4
    -0
      jdr/character.go
  3. +4
    -0
      jdr/dungeonmaster.go
  4. +5
    -0
      jdr/game.go
  5. +31
    -0
      main.go
  6. +9
    -0
      templates/login.html
  7. +16
    -0
      templates/player.html

+ 61
- 0
config.go View File

@ -0,0 +1,61 @@
package main
import (
"log"
"flag"
"os"
"path/filepath"
"github.com/BurntSushi/toml"
)
type Config struct {
Database DatabaseConfig
}
type DatabaseConfig struct {
Type string
}
var ConfigFolder string
var ConfigFilename string
var Configuration Config
func init() {
const baseFolder string = "jdr"
dir, varSet := os.LookupEnv("XDG_CONFIG_HOME")
if varSet {
ConfigFolder = filepath.Join(dir, baseFolder)
} else {
dir, varSet = os.LookupEnv("HOME")
if !varSet {
log.Fatal("Cannot find a config folder")
}
ConfigFolder = filepath.Join(dir, "." + baseFolder)
}
}
func ParseArguments() {
log.Println("Parsing arguments")
flag.StringVar(&ConfigFilename, "config", filepath.Join(ConfigFolder, "config.toml"), "configuration file")
flag.Parse()
}
func LoadConfig() {
configFilename, err := filepath.Abs(ConfigFilename)
if err != nil {
log.Fatal(err)
}
log.Println("Loading config from", configFilename)
_, err = toml.DecodeFile(configFilename, &Configuration)
if err != nil {
log.Fatal(err)
}
log.Println(Configuration.Database.Type)
}

+ 4
- 0
jdr/character.go View File

@ -0,0 +1,4 @@
package jdr
type Character struct {
}

+ 4
- 0
jdr/dungeonmaster.go View File

@ -0,0 +1,4 @@
package jdr
type DungeonMaster struct {
}

+ 5
- 0
jdr/game.go View File

@ -0,0 +1,5 @@
package jdr
type Game struct {
}

+ 31
- 0
main.go View File

@ -1,4 +1,35 @@
package main
import (
//"fmt"
"log"
"net/http"
"html/template"
"github.com/gorilla/mux"
)
var templates = template.Must(template.ParseGlob("templates/*.html"))
func mainPageHandler(w http.ResponseWriter, r *http.Request) {
err := templates.ExecuteTemplate(w, "login.html", nil)
if err != nil {
log.Println(err)
}
}
func playerPageHandler(w http.ResponseWriter, r *http.Request) {
err := templates.ExecuteTemplate(w, "player.html", nil)
if err != nil {
log.Println(err)
}
}
func main() {
ParseArguments()
LoadConfig()
r := mux.NewRouter()
r.HandleFunc("/", mainPageHandler)
r.HandleFunc("/player", playerPageHandler)
log.Fatal(http.ListenAndServe(":8080", r))
}

+ 9
- 0
templates/login.html View File

@ -0,0 +1,9 @@
<!DOCTYPE html>
<html>
<head>
<title>login</title>
</head>
<body>
<h1>Login</h1>
</body>
</html>

+ 16
- 0
templates/player.html View File

@ -0,0 +1,16 @@
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form>
<input type="text" name="name" />
<input type="text" name="player" />
<input type="text" name="race" />
<input type="text" name="gender" />
<input type="text" name="job" />
<input type="text" name="origin" />
<input type="text" name="inheritance" />
</form>
</body>
</html>

Loading…
Cancel
Save