summaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
authorunwox <me@unwox.com>2024-12-19 13:19:16 +0600
committerunwox <me@unwox.com>2024-12-19 13:19:16 +0600
commit7a052182c038dab42000ca3ea0cf7de601eeb07b (patch)
tree4bcc108917ecea3df015467cc1b92bc0b10ee8b5 /main.go
parent9ab527b9be01de1b9a294869bfcdb0c0c0989bee (diff)
add luna.utf8.upper function
Diffstat (limited to 'main.go')
-rw-r--r--main.go35
1 files changed, 17 insertions, 18 deletions
diff --git a/main.go b/main.go
index e3f29a2..8b32585 100644
--- a/main.go
+++ b/main.go
@@ -34,21 +34,7 @@ func main() {
}
luaArgv := flag.Args()
mustExist(luaArgv[0])
-
- dbMux := sync.Mutex{}
httpClient := &http.Client{}
- dbPool := []*sql.DB{}
- dbCur := 0
- dbGet := func() *sql.DB {
- dbMux.Lock()
- defer dbMux.Unlock()
- dbCur = (dbCur + 1) % 300
- return dbPool[dbCur]
- }
- for i := 0; i < 300; i++ {
- db, _ := sql.Open("sqlite3", "file:var/db.sqlite?_journal=WAL&_sync=NORMAL")
- dbPool = append(dbPool, db)
- }
// queue for http messages for workers to handle
msgs := make(chan *HTTPRequest, 4096)
@@ -132,10 +118,15 @@ func main() {
return luaOk(l, nil)
}
routes[route] = true
+ mu.Lock()
mux.Handle(
route,
- http.StripPrefix("/static/", http.FileServer(http.Dir(dir))),
+ http.StripPrefix(
+ strings.TrimPrefix(route, "GET "),
+ http.FileServer(http.Dir(dir)),
+ ),
)
+ mu.Unlock()
return luaOk(l, nil)
}
@@ -260,7 +251,7 @@ func main() {
if err != nil {
return luaErr(l, err)
}
- db := dbGet()
+ db := handle.Value().(*sql.DB)
_, err = db.Exec(query, params...)
if err != nil {
return luaErr(l, err)
@@ -276,7 +267,7 @@ func main() {
return luaErr(l, err)
}
ares := []any{}
- db := dbGet()
+ db := handle.Value().(*sql.DB)
rows, err := db.Query(query, params...)
if err != nil {
return luaErr(l, err)
@@ -312,7 +303,7 @@ func main() {
if err != nil {
return luaErr(l, err)
}
- db := dbGet()
+ db := handle.Value().(*sql.DB)
rows, err := db.Query(query, params...)
if err != nil {
return luaErr(l, err)
@@ -382,6 +373,14 @@ func main() {
}
return luaOk(l, strings.ToLower(str))
}
+ utf8Module["upper"] = func (l *Lua) int {
+ var str string
+ err := l.Scan(&str)
+ if err != nil {
+ return luaErr(l, err)
+ }
+ return luaOk(l, strings.ToUpper(str))
+ }
utf8Module["sub"] = func (l *Lua) int {
var str string
var start, length int