snap/README.md

950 B

snap

Typical layout for snap servers

    web/
        templates/
        static/
              app/
                 js/...
              skin1/...
              skin2/...
              favicon.ico              

Example:

package main

import (
	"git.thirdmartini.com/pub/snap"
	"git.thirdmartini.com/pub/snap/auth"
)

func handler(c *snap.Context) {
	c.Reply("snap/example/simple 1.0")
}

func handlerAuthenticated(c *snap.Context) {
	c.Reply("snap/example/simple 1.0 (authenticated)")
}

func mustRunServer(auth auth.Authenticator) {
	s := snap.New("localhost:9000", "web", auth)
	s.SetDebug(true)
	s.SetTemplatePath("web/templates")
	s.WithStaticFiles("/static", "web/static" )
	s.WithTheme("skin1")
	
	s.HandleFunc("/", handler)
	s.HandleFuncAuthenticated("/auth", "", handlerAuthenticated)

	s.Serve()
}

func main() {
	auth := auth.NewAuth("basic")
	auth.AddUser("admin", "admin", "password")
	mustRunServer(auth)
}