mirror of
https://shylinux.com/x/ContextOS
synced 2025-04-25 16:58:06 +08:00
vps syn 0.1.0 同步0.1.0修改
This commit is contained in:
parent
5679201960
commit
cb38843d82
@ -8,7 +8,6 @@ import ( // {{{
|
|||||||
|
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// }}}
|
// }}}
|
||||||
@ -19,25 +18,11 @@ type MDB struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (mdb *MDB) Begin(m *ctx.Message, arg ...string) ctx.Server { // {{{
|
func (mdb *MDB) Begin(m *ctx.Message, arg ...string) ctx.Server { // {{{
|
||||||
mdb.Configs["source"] = &ctx.Config{Name: "source", Value: "", Help: "数据库参数"}
|
|
||||||
mdb.Configs["driver"] = &ctx.Config{Name: "driver", Value: "", Help: "数据库驱动"}
|
|
||||||
|
|
||||||
return mdb
|
return mdb
|
||||||
}
|
}
|
||||||
|
|
||||||
// }}}
|
// }}}
|
||||||
func (mdb *MDB) Start(m *ctx.Message, arg ...string) bool { // {{{
|
func (mdb *MDB) Start(m *ctx.Message, arg ...string) bool { // {{{
|
||||||
m.Capi("nsource", 1)
|
|
||||||
defer m.Capi("nsource", -1)
|
|
||||||
|
|
||||||
if len(arg) > 0 {
|
|
||||||
m.Conf("source", arg[0])
|
|
||||||
|
|
||||||
if len(arg) > 1 {
|
|
||||||
m.Conf("driver", arg[1])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if m.Conf("source") == "" || m.Conf("driver") == "" {
|
if m.Conf("source") == "" || m.Conf("driver") == "" {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
@ -45,15 +30,9 @@ func (mdb *MDB) Start(m *ctx.Message, arg ...string) bool { // {{{
|
|||||||
db, e := sql.Open(m.Conf("driver"), m.Conf("source"))
|
db, e := sql.Open(m.Conf("driver"), m.Conf("source"))
|
||||||
m.Assert(e)
|
m.Assert(e)
|
||||||
mdb.db = db
|
mdb.db = db
|
||||||
defer mdb.db.Close()
|
|
||||||
|
|
||||||
log.Println(mdb.Name, "open:", m.Conf("driver"), m.Conf("source"))
|
m.Log("info", "%s: open %s %s", mdb.Name, m.Conf("driver"), m.Conf("source"))
|
||||||
defer log.Println(mdb.Name, "close:", m.Conf("driver"), m.Conf("source"))
|
m.Capi("nsource", 1)
|
||||||
|
|
||||||
for _, p := range m.Meta["prepare"] {
|
|
||||||
_, e := db.Exec(p)
|
|
||||||
m.Assert(e)
|
|
||||||
}
|
|
||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
@ -61,7 +40,17 @@ func (mdb *MDB) Start(m *ctx.Message, arg ...string) bool { // {{{
|
|||||||
// }}}
|
// }}}
|
||||||
func (mdb *MDB) Spawn(c *ctx.Context, m *ctx.Message, arg ...string) ctx.Server { // {{{
|
func (mdb *MDB) Spawn(c *ctx.Context, m *ctx.Message, arg ...string) ctx.Server { // {{{
|
||||||
c.Caches = map[string]*ctx.Cache{}
|
c.Caches = map[string]*ctx.Cache{}
|
||||||
c.Configs = map[string]*ctx.Config{}
|
c.Configs = map[string]*ctx.Config{
|
||||||
|
"source": &ctx.Config{Name: "source", Value: "", Help: "数据库参数"},
|
||||||
|
"driver": &ctx.Config{Name: "driver", Value: "", Help: "数据库驱动"},
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(arg) > 0 {
|
||||||
|
m.Conf("source", arg[0])
|
||||||
|
if len(arg) > 1 {
|
||||||
|
m.Conf("driver", arg[1])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
s := new(MDB)
|
s := new(MDB)
|
||||||
s.Context = c
|
s.Context = c
|
||||||
@ -70,6 +59,13 @@ func (mdb *MDB) Spawn(c *ctx.Context, m *ctx.Message, arg ...string) ctx.Server
|
|||||||
|
|
||||||
// }}}
|
// }}}
|
||||||
func (mdb *MDB) Exit(m *ctx.Message, arg ...string) bool { // {{{
|
func (mdb *MDB) Exit(m *ctx.Message, arg ...string) bool { // {{{
|
||||||
|
if mdb.db != nil && m.Target == mdb.Context {
|
||||||
|
m.Log("info", "%s: close %s %s", mdb.Name, m.Conf("driver"), m.Conf("source"))
|
||||||
|
m.Capi("nsource", -1)
|
||||||
|
mdb.db.Close()
|
||||||
|
mdb.db = nil
|
||||||
|
}
|
||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -81,15 +77,11 @@ var Index = &ctx.Context{Name: "mdb", Help: "内存数据库",
|
|||||||
},
|
},
|
||||||
Configs: map[string]*ctx.Config{},
|
Configs: map[string]*ctx.Config{},
|
||||||
Commands: map[string]*ctx.Command{
|
Commands: map[string]*ctx.Command{
|
||||||
"open": &ctx.Command{Name: "open [source [driver]]", Help: "打开数据库",
|
"open": &ctx.Command{Name: "open name [source [driver]]", Help: "打开数据库", Hand: func(c *ctx.Context, m *ctx.Message, key string, arg ...string) string {
|
||||||
Options: map[string]string{
|
m.Start(arg[0], arg[1:]...) // {{{
|
||||||
"prepare": "打开数据库时自动执行的语句",
|
return ""
|
||||||
},
|
// }}}
|
||||||
Hand: func(c *ctx.Context, m *ctx.Message, key string, arg ...string) string {
|
}},
|
||||||
m.Start("db"+m.Cap("nsource"), arg...) // {{{
|
|
||||||
return ""
|
|
||||||
// }}}
|
|
||||||
}},
|
|
||||||
"exec": &ctx.Command{Name: "exec sql [arg]", Help: "执行SQL语句",
|
"exec": &ctx.Command{Name: "exec sql [arg]", Help: "执行SQL语句",
|
||||||
Appends: map[string]string{
|
Appends: map[string]string{
|
||||||
"LastInsertId": "最后插入元组的标识",
|
"LastInsertId": "最后插入元组的标识",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user