mirror of
https://github.com/beego/bee.git
synced 2024-12-22 15:10:49 +00:00
Merge branch 'master' of github.com:beego/bee
This commit is contained in:
commit
d4cd5a0671
@ -150,7 +150,7 @@ func (this *ObjectController) Post() {
|
||||
}
|
||||
|
||||
func (this *ObjectController) Get() {
|
||||
objectId := this.Ctx.Input.Param[":objectId"]
|
||||
objectId := this.Ctx.Input.Params[":objectId"]
|
||||
if objectId != "" {
|
||||
ob, err := models.GetOne(objectId)
|
||||
if err != nil {
|
||||
@ -166,7 +166,7 @@ func (this *ObjectController) Get() {
|
||||
}
|
||||
|
||||
func (this *ObjectController) Put() {
|
||||
objectId := this.Ctx.Input.Param[":objectId"]
|
||||
objectId := this.Ctx.Input.Params[":objectId"]
|
||||
var ob models.Object
|
||||
json.Unmarshal(this.Ctx.Input.RequestBody, &ob)
|
||||
|
||||
@ -180,7 +180,7 @@ func (this *ObjectController) Put() {
|
||||
}
|
||||
|
||||
func (this *ObjectController) Delete() {
|
||||
objectId := this.Ctx.Input.Param[":objectId"]
|
||||
objectId := this.Ctx.Input.Params[":objectId"]
|
||||
models.Delete(objectId)
|
||||
this.Data["json"] = "delete success!"
|
||||
this.ServeJson()
|
||||
|
3
conf.go
3
conf.go
@ -40,7 +40,8 @@ var conf struct {
|
||||
Version int
|
||||
// gopm support
|
||||
Gopm struct {
|
||||
Enable bool
|
||||
Enable bool
|
||||
Install bool
|
||||
}
|
||||
// Indicates whether execute "go install" before "go build".
|
||||
GoInstall bool `json:"go_install"`
|
||||
|
4
pack.go
4
pack.go
@ -46,7 +46,7 @@ compress an beego project
|
||||
-ba additional args of go build
|
||||
-o compressed file output dir. default use current path
|
||||
-f format. [ tar.gz / zip ]. default tar.gz. note: zip doesn't support embed symlink, skip it
|
||||
-exp path exclude prefix
|
||||
-exp path exclude prefix. default: .
|
||||
-exs path exclude suffix. default: .go:.DS_Store:.tmp
|
||||
all path use : as separator
|
||||
-fs follow symlink. default false
|
||||
@ -72,7 +72,7 @@ var (
|
||||
func init() {
|
||||
fs := flag.NewFlagSet("pack", flag.ContinueOnError)
|
||||
fs.StringVar(&appPath, "p", "", "")
|
||||
fs.StringVar(&excludeP, "exp", "", "")
|
||||
fs.StringVar(&excludeP, "exp", ".", "")
|
||||
fs.StringVar(&excludeS, "exs", ".go:.DS_Store:.tmp", "")
|
||||
fs.StringVar(&outputP, "o", "", "")
|
||||
fs.BoolVar(&build, "b", true, "")
|
||||
|
60
watch.go
60
watch.go
@ -15,6 +15,7 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"os"
|
||||
"os/exec"
|
||||
@ -27,9 +28,10 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
cmd *exec.Cmd
|
||||
state sync.Mutex
|
||||
eventTime = make(map[string]int64)
|
||||
cmd *exec.Cmd
|
||||
state sync.Mutex
|
||||
eventTime = make(map[string]int64)
|
||||
buildPeriod time.Time
|
||||
)
|
||||
|
||||
func NewWatcher(paths []string) {
|
||||
@ -53,6 +55,12 @@ func NewWatcher(paths []string) {
|
||||
continue
|
||||
}
|
||||
|
||||
// Prevent duplicated builds.
|
||||
if buildPeriod.Add(1 * time.Second).After(time.Now()) {
|
||||
continue
|
||||
}
|
||||
buildPeriod = time.Now()
|
||||
|
||||
mt := getFileModTime(e.Name)
|
||||
if t := eventTime[e.Name]; mt == t {
|
||||
ColorLog("[SKIP] # %s #\n", e.String())
|
||||
@ -69,8 +77,6 @@ func NewWatcher(paths []string) {
|
||||
ColorLog("[WARN] %s\n", err.Error()) // No need to exit here
|
||||
}
|
||||
}
|
||||
|
||||
time.Sleep(500 * time.Millisecond)
|
||||
}()
|
||||
|
||||
ColorLog("[INFO] Initializing watcher...\n")
|
||||
@ -120,11 +126,26 @@ func Autobuild() {
|
||||
var err error
|
||||
// For applications use full import path like "github.com/.../.."
|
||||
// are able to use "go install" to reduce build time.
|
||||
if conf.GoInstall {
|
||||
icmd := exec.Command(cmdName, "install")
|
||||
icmd.Stdout = os.Stdout
|
||||
icmd.Stderr = os.Stderr
|
||||
if conf.GoInstall || conf.Gopm.Install {
|
||||
icmd := exec.Command("go", "list", "./...")
|
||||
buf := bytes.NewBuffer([]byte(""))
|
||||
icmd.Stdout = buf
|
||||
err = icmd.Run()
|
||||
if err == nil {
|
||||
list := strings.Split(buf.String(), "\n")[1:]
|
||||
for _, pkg := range list {
|
||||
if len(pkg) == 0 {
|
||||
continue
|
||||
}
|
||||
icmd = exec.Command(cmdName, "install", pkg)
|
||||
icmd.Stdout = os.Stdout
|
||||
icmd.Stderr = os.Stderr
|
||||
err = icmd.Run()
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if err == nil {
|
||||
@ -132,17 +153,11 @@ func Autobuild() {
|
||||
if runtime.GOOS == "windows" {
|
||||
appName += ".exe"
|
||||
}
|
||||
binPath := GetGOPATHs()[0] + "/bin/" + appName
|
||||
|
||||
if conf.GoInstall && isExist(binPath) {
|
||||
os.Rename(binPath, appName)
|
||||
ColorLog("[INFO] Build command reduced\n")
|
||||
} else {
|
||||
bcmd := exec.Command(cmdName, "build")
|
||||
bcmd.Stdout = os.Stdout
|
||||
bcmd.Stderr = os.Stderr
|
||||
err = bcmd.Run()
|
||||
}
|
||||
bcmd := exec.Command(cmdName, "build")
|
||||
bcmd.Stdout = os.Stdout
|
||||
bcmd.Stderr = os.Stderr
|
||||
err = bcmd.Run()
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
@ -156,11 +171,14 @@ func Autobuild() {
|
||||
func Kill() {
|
||||
defer func() {
|
||||
if e := recover(); e != nil {
|
||||
fmt.Println("Kill -> ", e)
|
||||
fmt.Println("Kill.recover -> ", e)
|
||||
}
|
||||
}()
|
||||
if cmd != nil && cmd.Process != nil {
|
||||
cmd.Process.Kill()
|
||||
err := cmd.Process.Kill()
|
||||
if err != nil {
|
||||
fmt.Println("Kill -> ", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user