func consoleHandler() { g := Load() l := log551.New(&g.config.Framework.CommandLog) l.Open() defer l.Close() sid := secure551.Hash() // Routing name := os.Args[1] l.Debugf("%s [ Command ] %s", sid[:10], name) route := g.router.FindRouteByName(router551.COMMAND.String(), name) if route == nil { l.Errorf("%s %s", sid[:10], "Action not found...") return } // Options optionArgs := os.Args[2:] if len(optionArgs)%2 == 1 { l.Errorf("%s %s", sid[:10], "Missing options.") } options := make(map[string]string, len(optionArgs)/2) for i := 0; i < len(optionArgs); i += 2 { options[optionArgs[i][1:]] = optionArgs[i+1] } mysql := mysql551.New(&g.config.Framework.Database) mysql.Open() defer mysql.Close() session := memcache551.New(&g.config.Framework.Session.Server, sid) c := container551.New() c.SetSID(sid) c.SetResponseWriter(nil) c.SetRequest(nil) c.SetLogger(l) c.SetCookie(nil) c.SetDb(mysql) c.SetSession(session) c.SetModel(g.modelManager) c.SetCommandOptions(options) if g.config.Framework.WebServerSSL.Port == "443" { c.SetBaseURL("https://" + g.config.Framework.WebServerSSL.Host) } else { c.SetBaseURL("https://" + g.config.Framework.WebServerSSL.Host + ":" + g.config.Framework.WebServerSSL.Port) } action := route.Action() action(c) }
func (g *gorai) sid(cookie *cookie551.Cookie) string { sid, err := cookie.Get(g.config.Framework.Session.CookieKeyName) if err == nil { return sid } sid = secure551.Hash() cookie.Set(g.config.Framework.Session.CookieKeyName, sid, 60*60*24*365) return sid }
package memcache551_test import ( "github.com/go51/memcache551" "github.com/go51/secure551" "testing" ) var sid string = secure551.Hash() func TestLoad(t *testing.T) { config := memcache551.Config{ Host: "localhost:11211", Prefix: "gorai", Expires: 3600, } m1 := memcache551.New(&config, sid) m2 := memcache551.New(&config, sid) if m1 == nil { t.Errorf("インスタンス生成に失敗しました。") } if m2 == nil { t.Errorf("インスタンス生成に失敗しました。") } if &m1 == &m2 { t.Errorf("インスタンス生成に失敗しました。\n[%p], [%p]", &m1, &m2) } }