Evan Chen 2021-12-16 19:44:07 +08:00
parent 905e1779a5
commit 7e89c07951
6 changed files with 46 additions and 5 deletions

View File

@ -5,4 +5,4 @@ run:
APP_LOG_PRETTY=true \ APP_LOG_PRETTY=true \
APP_DB_TYPE=sqlite \ APP_DB_TYPE=sqlite \
APP_DATA=work \ APP_DATA=work \
go run main.go go run cmd/test/main.go

View File

@ -1,3 +1,9 @@
# Kumoly App # Kumoly App
combine all needed module into one lib combine all needed module into one lib
## Run
```
```

View File

@ -3,6 +3,8 @@ package history
import ( import (
"fmt" "fmt"
"time" "time"
"kumoly.io/kumoly/app/errors"
) )
const ( const (
@ -26,19 +28,27 @@ type History struct {
var Tunnel chan *History var Tunnel chan *History
var quit chan struct{} var quit chan struct{}
var started chan struct{}
func init() { func init() {
Tunnel = make(chan *History) Tunnel = make(chan *History)
quit = make(chan struct{}, 1) quit = make(chan struct{}, 1)
started = make(chan struct{}, 1)
} }
func Start(r Receiver) { func Start(r Receiver) {
select {
case started <- struct{}{}:
default:
panic(errors.New(500, "history has already started!"))
}
go func() { go func() {
for { for {
select { select {
case h := <-Tunnel: case h := <-Tunnel:
r(h) r(h)
case <-quit: case <-quit:
<-started
return return
} }
} }

9
run.sh Normal file
View File

@ -0,0 +1,9 @@
export APP_SERVER_HOST=127.0.0.1
export APP_SERVER_PORT=8000
export APP_LOG_LEVEL=-1
export APP_PROD=false
export APP_LOG_PRETTY=true
export APP_DB_TYPE=sqlite
export APP_DATA=work
go run cmd/test/main.go

View File

@ -1,6 +1,7 @@
package system package system
import ( import (
"fmt"
"io/ioutil" "io/ioutil"
"os" "os"
"path/filepath" "path/filepath"
@ -61,9 +62,24 @@ func setup() {
if cc, ok := i.(string); ok { if cc, ok := i.(string); ok {
c = cc c = cc
} }
// if len(c) > 0 { if len(c) > 0 {
// shorten caller to mod/file:line
// } segs := strings.Split(c, ":")
file := segs[len(segs)-2]
short := file
skip := false
for i := len(file) - 1; i > 0; i-- {
if file[i] == '/' {
if !skip {
skip = true
continue
}
short = file[i+1:]
break
}
}
return fmt.Sprintf("%v:%v", short, segs[len(segs)-1])
}
return c return c
}, },
}) })