19 rand.Seed(time.Now().Unix())
23 config, err := config.ParseFile("default.conf")
28 if !config.IsValid() {
29 log.Fatal("invalid config")
32 renderer, err := renderer.NewRenderer(config.TemplatesGlobPattern)
37 err = os.Mkdir(config.DatabasePath, 0755)
38 if err != nil && !os.IsExist(err) {
42 sessionDB, err := kv.NewDatabse(filepath.Join(config.DatabasePath, "session"))
47 appDB, err := kv.NewDatabse(filepath.Join(config.DatabasePath, "app"))
52 sessionRepo := repository.NewSessionRepository(sessionDB)
53 appRepo := repository.NewAppRepository(appDB)
55 var logger *log.Logger
56 if len(config.Logfile) < 1 {
57 logger = log.New(os.Stdout, "", log.LstdFlags)
59 lf, err := os.Open(config.Logfile)
64 logger = log.New(lf, "", log.LstdFlags)
67 s := service.NewService(config.ClientName, config.ClientScope, config.ClientWebsite, renderer, sessionRepo, appRepo)
68 s = service.NewAuthService(sessionRepo, appRepo, s)
69 s = service.NewLoggingService(logger, s)
70 handler := service.NewHandler(s, config.StaticDirectory)
72 log.Println("listening on", config.ListenAddress)
73 err = http.ListenAndServe(config.ListenAddress, handler)