add dev githook command

This commit is contained in:
Ming Deng 2020-10-09 23:33:58 +08:00
parent f5665162f7
commit e0fd237002
22 changed files with 150 additions and 33 deletions

View File

@ -21,6 +21,7 @@ import (
_ "github.com/beego/bee/cmd/commands/bale"
_ "github.com/beego/bee/cmd/commands/beefix"
_ "github.com/beego/bee/cmd/commands/beegopro"
_ "github.com/beego/bee/cmd/commands/dev"
_ "github.com/beego/bee/cmd/commands/dlv"
_ "github.com/beego/bee/cmd/commands/dockerize"
_ "github.com/beego/bee/cmd/commands/generate"

View File

@ -16,11 +16,12 @@ package apiapp
import (
"fmt"
"github.com/beego/bee/logger/colors"
"os"
path "path/filepath"
"strings"
"github.com/beego/bee/logger/colors"
"github.com/beego/bee/cmd/commands"
"github.com/beego/bee/cmd/commands/version"
"github.com/beego/bee/generate"

View File

@ -14,10 +14,11 @@
package beegopro
import (
"strings"
"github.com/beego/bee/cmd/commands"
"github.com/beego/bee/internal/app/module/beegopro"
"github.com/beego/bee/logger"
"strings"
)
var CmdBeegoPro = &commands.Command{

56
cmd/commands/dev/cmd.go Normal file
View File

@ -0,0 +1,56 @@
// Copyright 2020
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package dev
import (
"github.com/beego/bee/cmd/commands"
beeLogger "github.com/beego/bee/logger"
)
var CmdDev = &commands.Command{
CustomFlags: true,
UsageLine: "dev [command]",
Short: "Commands which used to help to develop beego and bee",
Long: `
Commands that help developer develop, build and test beego.
- githook Prepare githooks
`,
Run: Run,
}
func init() {
commands.AvailableCommands = append(commands.AvailableCommands, CmdDev)
}
func Run(cmd *commands.Command, args []string) int {
if len(args) < 1 {
beeLogger.Log.Fatal("Command is missing")
}
if len(args) >= 2 {
cmd.Flag.Parse(args[1:])
}
gcmd := args[0]
switch gcmd {
case "githook":
initGitHook()
default:
beeLogger.Log.Fatal("Unknown command")
}
return 0
}

View File

@ -0,0 +1,47 @@
// Copyright 2020
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package dev
import (
"os"
beeLogger "github.com/beego/bee/logger"
)
var preCommit = `
goimports -w -format-only ./ \
ineffassign . \
staticcheck -show-ignored -checks "-ST1017,-U1000,-ST1005,-S1034,-S1012,-SA4006,-SA6005,-SA1019,-SA1024" ./ \
`
// for now, we simply override pre-commit file
func initGitHook() {
// pcf => pre-commit file
pcfPath := "./.git/hooks/pre-commit"
pcf, err := os.OpenFile(pcfPath, os.O_RDWR|os.O_CREATE, 0777)
if err != nil {
beeLogger.Log.Errorf("try to create or open file failed: %s, cause: %s", pcfPath, err.Error())
return
}
defer pcf.Close()
_, err = pcf.Write(([]byte)(preCommit))
if err != nil {
beeLogger.Log.Errorf("could not init githooks: %s", err.Error())
} else {
beeLogger.Log.Successf("The githooks has been added, the content is:\n %s ", preCommit)
}
}

View File

@ -28,12 +28,12 @@ import (
"github.com/beego/bee/cmd/commands/version"
beeLogger "github.com/beego/bee/logger"
"github.com/beego/bee/utils"
"github.com/fsnotify/fsnotify"
"github.com/gadelkareem/delve/pkg/terminal"
"github.com/gadelkareem/delve/service"
"github.com/gadelkareem/delve/service/debugger"
"github.com/gadelkareem/delve/service/rpc2"
"github.com/gadelkareem/delve/service/rpccommon"
"github.com/gadelkareem/delve/pkg/terminal"
"github.com/fsnotify/fsnotify"
)
var cmdDlv = &commands.Command{

View File

@ -2,11 +2,12 @@ package hprose
import (
"fmt"
"github.com/beego/bee/logger/colors"
"os"
"path"
"strings"
"github.com/beego/bee/logger/colors"
"github.com/beego/bee/cmd/commands"
"github.com/beego/bee/cmd/commands/api"
"github.com/beego/bee/cmd/commands/version"

View File

@ -32,7 +32,7 @@ func updateBee(cmd *commands.Command, args []string) int {
cmdUp.Stdout = os.Stdout
cmdUp.Stderr = os.Stderr
if err := cmdUp.Run(); err != nil {
beeLogger.Log.Warnf("Run cmd err:%s",err)
beeLogger.Log.Warnf("Run cmd err:%s", err)
}
return 0
}

View File

@ -27,11 +27,10 @@ import (
const confVer = 0
const (
Version = "2.0.0"
Version = "2.0.0"
GitRemotePath = "github.com/beego/bee"
)
var Conf = struct {
Version int
WatchExts []string `json:"watch_ext" yaml:"watch_ext"`

View File

@ -1,11 +1,14 @@
package beegopro
import (
"io/ioutil"
"github.com/beego/bee/internal/pkg/utils"
beeLogger "github.com/beego/bee/logger"
"io/ioutil"
)
var CompareExcept = []string{"@BeeGenerateTime"}
func (c *Container) GenConfig() {
if utils.IsExist(c.BeegoProFile) {
beeLogger.Log.Fatalf("beego pro toml exist")

View File

@ -2,6 +2,10 @@ package beegopro
import (
"fmt"
"io/ioutil"
"sync"
"time"
"github.com/beego/bee/internal/pkg/git"
"github.com/beego/bee/internal/pkg/system"
beeLogger "github.com/beego/bee/logger"
@ -9,9 +13,6 @@ import (
"github.com/davecgh/go-spew/spew"
"github.com/pelletier/go-toml"
"github.com/spf13/viper"
"io/ioutil"
"sync"
"time"
)
const MDateFormat = "20060102_150405"

View File

@ -2,11 +2,12 @@ package beegopro
import (
"database/sql"
beeLogger "github.com/beego/bee/logger"
"github.com/beego/bee/utils"
"io/ioutil"
"path/filepath"
"strings"
beeLogger "github.com/beego/bee/logger"
"github.com/beego/bee/utils"
)
var SQL utils.DocValue

View File

@ -3,6 +3,7 @@ package beegopro
import (
"database/sql"
"fmt"
"github.com/beego/bee/internal/pkg/utils"
beeLogger "github.com/beego/bee/logger"
)

View File

@ -1,10 +1,11 @@
package beegopro
import (
"github.com/beego/bee/utils"
"github.com/flosch/pongo2"
"strings"
"unicode/utf8"
"github.com/beego/bee/utils"
"github.com/flosch/pongo2"
)
func init() {

View File

@ -123,7 +123,7 @@ func (r *RenderFile) Exec(name string) {
var orgContent []byte
if err == nil {
if org, err := os.OpenFile(r.Descriptor.DstPath, os.O_RDONLY, 0666); err == nil {
orgContent,_ = ioutil.ReadAll(org)
orgContent, _ = ioutil.ReadAll(org)
org.Close()
} else {
beeLogger.Log.Infof("file err %s", err)
@ -151,4 +151,3 @@ func (r *RenderFile) Exec(name string) {
beeLogger.Log.Infof("create file '%s' from %s", r.FlushFile, r.PackageName)
}
}

View File

@ -2,15 +2,16 @@ package beegopro
import (
"fmt"
"path/filepath"
"strings"
"sync"
"github.com/beego/bee/internal/pkg/command"
"github.com/beego/bee/internal/pkg/system"
beeLogger "github.com/beego/bee/logger"
"github.com/beego/bee/utils"
"github.com/flosch/pongo2"
"github.com/smartwalle/pongo2render"
"path/filepath"
"strings"
"sync"
)
// store all data

View File

@ -1,8 +1,9 @@
package beegopro
import (
"github.com/beego/bee/utils"
"strings"
"github.com/beego/bee/utils"
)
// parse get the model info

View File

@ -3,6 +3,7 @@ package beegopro
import (
"database/sql"
"errors"
"github.com/beego/bee/logger"
)

View File

@ -173,14 +173,14 @@ func getModelType(orm string) (inputType, goType, mysqlType, tag string) {
return
}
func FileContentChange(org,new []byte, seg string) bool {
func FileContentChange(org, new []byte, seg string) bool {
if len(org) == 0 {
return true
}
orgContent := GetFilterContent(string(org),seg)
newContent := GetFilterContent(string(new),seg)
orgContent := GetFilterContent(string(org), seg)
newContent := GetFilterContent(string(new), seg)
orgMd5 := md5.Sum([]byte(orgContent))
newMd5:= md5.Sum([]byte(newContent))
newMd5 := md5.Sum([]byte(newContent))
if orgMd5 != newMd5 {
return true
}
@ -193,7 +193,7 @@ func GetFilterContent(content string, seg string) string {
for _, s := range strings.Split(content, "\n") {
s = strings.TrimSpace(strings.TrimPrefix(s, seg))
var have bool
for _,except := range CompareExcept{
for _, except := range CompareExcept {
if strings.HasPrefix(s, except) {
have = true
}

View File

@ -3,13 +3,14 @@ package git
import (
"errors"
"fmt"
"github.com/beego/bee/internal/pkg/command"
"github.com/beego/bee/internal/pkg/utils"
beeLogger "github.com/beego/bee/logger"
"path/filepath"
"sort"
"strconv"
"strings"
"github.com/beego/bee/internal/pkg/command"
"github.com/beego/bee/internal/pkg/utils"
beeLogger "github.com/beego/bee/logger"
)
// git tag

View File

@ -1,8 +1,9 @@
package utils
import (
beeLogger "github.com/beego/bee/logger"
"os"
beeLogger "github.com/beego/bee/logger"
)
// Mkdir ...

View File

@ -39,7 +39,7 @@ import (
)
type tagName struct {
Name string `json:"name"`
Name string `json:"name"`
}
func GetBeeWorkPath() string {
@ -521,7 +521,7 @@ func NoticeUpdateBee() {
beeLogger.Log.Info("Getting bee latest version...")
versionLast := BeeLastVersion()
versionNow := config.Version
if versionLast == ""{
if versionLast == "" {
beeLogger.Log.Warn("Get latest version err")
return
}