first commit

This commit is contained in:
lulz1 2024-10-23 12:52:17 +08:00
parent a553917c10
commit dcd6422c3b
76 changed files with 824 additions and 386 deletions

6
.gitignore vendored
View File

@ -28,3 +28,9 @@ coverage
*.sw?
*.tsbuildinfo
/storage
/app
/.idea

View File

@ -2,7 +2,9 @@
<module type="WEB_MODULE" version="4">
<component name="Go" enabled="true" />
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/dist" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>

View File

@ -2,5 +2,6 @@
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
<mapping directory="$PROJECT_DIR$/http/middleware/cors" vcs="Git" />
</component>
</project>

View File

@ -18,5 +18,5 @@ func Demo(c *gin.Context) {
log := c.MustMake(contract.LogKey).(contract.Log)
password := configService.GetString("database.mysql.password")
log.Info(c, "ceshiceshi", map[string]interface{}{})
c.JSON(200, password+"测123")
c.JSON(200, password+"后端测试222")
}

View File

@ -7,7 +7,7 @@ dev_fresh: 1
dev: # 调试模式
port: 8888 # 调试模式最终监听的端口默认为8070
backend: # 后端调试模式配置
refresh_time: 3 # 调试模式后端更新时间如果文件变更等待3s才进行一次更新能让频繁保存变更更为顺畅, 默认1s
refresh_time: 1 # 调试模式后端更新时间如果文件变更等待3s才进行一次更新能让频繁保存变更更为顺畅, 默认1s
port: 8890 # 后端监听端口默认8072
monitor_folder: "" # 监听文件夹地址为空或者不填默认为AppFolder
frontend: # 前端调试模式配置

View File

@ -4,9 +4,7 @@ import (
"fmt"
"github.com/Superdanda/hade/framework/cobra"
"log"
"os"
"os/exec"
"path/filepath"
"runtime"
)
@ -21,14 +19,6 @@ func initBuildCommand() *cobra.Command {
var buildSelfCommand = &cobra.Command{
Use: "self",
Short: "编译hade命令",
RunE: func(c *cobra.Command, args []string) error {
return goCommand.RunE(c, []string{"build"})
},
}
var buildBackendCommand = &cobra.Command{
Use: "backend",
Short: "使用go编译后端",
RunE: func(c *cobra.Command, args []string) error {
path, err := exec.LookPath("go")
if err != nil {
@ -37,27 +27,15 @@ var buildBackendCommand = &cobra.Command{
// 根据系统设置输出文件名
output := "hade"
env := []string{}
if runtime.GOOS == "windows" {
output += ".exe"
}
// 指定输出目录
outputDir := filepath.Join(".")
err = os.MkdirAll(outputDir, 0755)
if err != nil {
return fmt.Errorf("无法创建输出目录: %v", err)
}
// 设置工作目录(避免权限问题)
tempDir := filepath.Join(outputDir, "go-temp")
err = os.MkdirAll(tempDir, 0755)
if err != nil {
return fmt.Errorf("无法创建临时目录: %v", err)
//env = append(env, "GOOS=windows", "GOARCH=amd64")
}
// 构建命令,设置环境变量
cmd := exec.Command(path, "build", "-o", filepath.Join(outputDir, output), "./")
cmd.Env = append(os.Environ(), "GOTMPDIR="+tempDir) // 设置临时目录
cmd := exec.Command(path, "build", "-o", output, "./")
cmd.Env = append(cmd.Env, env...) // 追加环境变量
// 执行编译命令并获取输出
out, err := cmd.CombinedOutput()
@ -73,6 +51,14 @@ var buildBackendCommand = &cobra.Command{
},
}
var buildBackendCommand = &cobra.Command{
Use: "backend",
Short: "使用go编译后端",
RunE: func(c *cobra.Command, args []string) error {
return buildSelfCommand.RunE(c, args)
},
}
var buildCommand = &cobra.Command{
Use: "build",
Short: "编译相关命令",

148
framework/command/cmd.go Normal file
View File

@ -0,0 +1,148 @@
package command
import (
"fmt"
"github.com/AlecAivazis/survey/v2"
"github.com/Superdanda/hade/framework/cobra"
"github.com/Superdanda/hade/framework/contract"
"github.com/Superdanda/hade/framework/util"
"github.com/jianfengye/collection"
"github.com/pkg/errors"
"golang.org/x/text/cases"
"golang.org/x/text/language"
"html/template"
"os"
"path/filepath"
)
func initCmdCommand() *cobra.Command {
CmdCommand.AddCommand(cmdListCommand)
CmdCommand.AddCommand(cmdNewCommand)
return CmdCommand
}
var CmdCommand = &cobra.Command{
Use: "command",
Short: "显示帮助信息",
RunE: func(c *cobra.Command, args []string) error {
if len(args) == 0 {
c.Help()
}
return nil
},
}
var cmdListCommand = &cobra.Command{
Use: "list",
Short: "列出所有控制台命令",
RunE: func(c *cobra.Command, args []string) error {
cmds := c.Root().Commands()
ps := [][]string{}
for _, cmd := range cmds {
line := []string{cmd.Name(), cmd.Short}
ps = append(ps, line)
}
util.PrettyPrint(ps)
return nil
},
}
var cmdNewCommand = &cobra.Command{
Use: "new",
Aliases: []string{"create", "init"}, // 设置别名为 create init
Short: "创建一个控制台命令",
RunE: func(c *cobra.Command, args []string) error {
container := c.GetContainer()
fmt.Println("开始创建控制台命令...")
var name string
var folder string
{
prompt := &survey.Input{
Message: "请输入控制台命令名称:",
}
err := survey.AskOne(prompt, &name)
if err != nil {
return err
}
}
{
prompt := &survey.Input{
Message: "请输入文件夹名称(默认: 同控制台命令):",
}
err := survey.AskOne(prompt, &folder)
if err != nil {
return err
}
}
if folder == "" {
folder = name
}
app := container.MustMake(contract.AppKey).(contract.App)
pFolder := app.CommandFolder()
subFolders, err := util.SubDir(pFolder)
if err != nil {
return err
}
if collection.NewStrCollection(subFolders).Contains(folder) {
fmt.Println("目录名称已经存在")
return nil
}
if err = os.Mkdir(filepath.Join(pFolder, folder), 0700); err != nil {
return err
}
titleCase := cases.Title(language.English)
funcMap := template.FuncMap{
"title": func(s string) string {
return titleCase.String(s)
},
}
{
// 创建name.go
file := filepath.Join(pFolder, folder, name+".go")
f, err := os.Create(file)
if err != nil {
return errors.Cause(err)
}
// 使用contractTmp模版来初始化template并且让这个模版支持title方法即支持{{.|title}}
t := template.Must(template.New("cmd").Funcs(funcMap).Parse(cmdTmpl))
// 将name传递进入到template中渲染并且输出到contract.go 中
if err := t.Execute(f, name); err != nil {
return errors.Cause(err)
}
}
fmt.Println("创建新命令行工具成功,路径:", filepath.Join(pFolder, folder))
fmt.Println("请记得开发完成后将命令行工具挂载到 console/kernel.go")
return nil
},
}
// 命令行工具模版
var cmdTmpl = `package {{.}}
import (
"fmt"
"github.com/Superdanda/hade/framework/cobra"
)
var {{.|title}}Command = &cobra.Command{
Use: "{{.}}",
Short: "{{.}}",
RunE: func(c *cobra.Command, args []string) error {
container := c.GetContainer()
fmt.Println(container)
return nil
},
}
`

View File

@ -14,6 +14,9 @@ func AddKernelCommands(root *cobra.Command) {
root.AddCommand(initEnvCommand())
root.AddCommand(initBuildCommand())
root.AddCommand(initDevCommand())
root.AddCommand(initProviderCommand())
root.AddCommand(initCmdCommand())
root.AddCommand(initMiddlewareCommand())
}
// 封装通用的命令执行器

View File

@ -0,0 +1,214 @@
package command
import (
"bytes"
"fmt"
"github.com/AlecAivazis/survey/v2"
"github.com/Superdanda/hade/framework/cobra"
"github.com/Superdanda/hade/framework/contract"
"github.com/Superdanda/hade/framework/util"
"github.com/go-git/go-git/v5"
"github.com/jianfengye/collection"
"github.com/pkg/errors"
"io/ioutil"
"os"
"path"
"path/filepath"
"strings"
"text/template"
)
// 初始化中间件相关命令
func initMiddlewareCommand() *cobra.Command {
middlewareCommand.AddCommand(middlewareAllCommand)
middlewareCommand.AddCommand(middlewareMigrateCommand)
middlewareCommand.AddCommand(middlewareCreateCommand)
return middlewareCommand
}
// middlewareCommand 中间件二级命令
var middlewareCommand = &cobra.Command{
Use: "middleware",
Short: "中间件相关命令",
RunE: func(c *cobra.Command, args []string) error {
if len(args) == 0 {
c.Help()
}
return nil
},
}
// middlewareAllCommand 显示所有安装的中间件
var middlewareAllCommand = &cobra.Command{
Use: "list",
Short: "显示所有中间件",
RunE: func(c *cobra.Command, args []string) error {
container := c.GetContainer()
appService := container.MustMake(contract.AppKey).(contract.App)
middlewarePath := path.Join(appService.BaseFolder(), "app", "http", "middleware")
// 读取文件夹
files, err := ioutil.ReadDir(middlewarePath)
if err != nil {
return err
}
for _, f := range files {
if f.IsDir() {
fmt.Println(f.Name())
}
}
return nil
},
}
var middlewareMigrateCommand = &cobra.Command{
Use: "migrate",
Short: "迁移gin-contrib中间件, 迁移地址https://github.com/gin-contrib/[middleware].git",
RunE: func(c *cobra.Command, args []string) error {
container := c.GetContainer()
fmt.Println("迁移一个Gin中间件")
var repo string
{
prompt := &survey.Input{
Message: "请输入中间件名称:",
}
err := survey.AskOne(prompt, &repo)
if err != nil {
return err
}
}
// step2 : 下载git到一个目录中
appService := container.MustMake(contract.AppKey).(contract.App)
middlewarePath := appService.MiddlewareFolder()
url := "https://github.com/gin-contrib/" + repo + ".git"
fmt.Println("下载中间件 gin-contrib:")
fmt.Println(url)
_, err := git.PlainClone(path.Join(middlewarePath, repo), false, &git.CloneOptions{
URL: url,
Progress: os.Stdout,
})
if err != nil {
return err
}
// step3:删除不必要的文件 go.mod, go.sum, .git
repoFolder := path.Join(middlewarePath, repo)
fmt.Println("remove " + path.Join(repoFolder, "go.mod"))
os.Remove(path.Join(repoFolder, "go.mod"))
fmt.Println("remove " + path.Join(repoFolder, "go.sum"))
os.Remove(path.Join(repoFolder, "go.sum"))
fmt.Println("remove " + path.Join(repoFolder, ".git"))
os.RemoveAll(path.Join(repoFolder, ".git"))
// step4 : 替换关键词
filepath.Walk(repoFolder, func(path string, info os.FileInfo, err error) error {
if info.IsDir() {
return nil
}
if filepath.Ext(path) != ".go" {
return nil
}
c, err := ioutil.ReadFile(path)
if err != nil {
return err
}
isContain := bytes.Contains(c, []byte("github.com/gin-gonic/gin"))
if isContain {
fmt.Println("更新文件:" + path)
c = bytes.ReplaceAll(c, []byte("github.com/gin-gonic/gin"), []byte("github.com/Superdanda/hade/framework/gin"))
err = ioutil.WriteFile(path, c, 0644)
if err != nil {
return err
}
}
return nil
})
return nil
},
}
var middlewareCreateCommand = &cobra.Command{
Use: "new",
Aliases: []string{"create", "init"},
Short: "创建一个中间件",
RunE: func(c *cobra.Command, args []string) error {
container := c.GetContainer()
fmt.Println("创建一个中间件")
var name string
var folder string
{
prompt := &survey.Input{
Message: "请输入中间件名称:",
}
err := survey.AskOne(prompt, &name)
if err != nil {
return err
}
}
{
prompt := &survey.Input{
Message: "请输入中间件所在目录名称(默认: 同中间件名称):",
}
err := survey.AskOne(prompt, &folder)
if err != nil {
return err
}
}
if folder == "" {
folder = name
}
app := container.MustMake(contract.AppKey).(contract.App)
pFolder := app.MiddlewareFolder()
subFolders, err := util.SubDir(pFolder)
if err != nil {
return err
}
subColl := collection.NewStrCollection(subFolders)
if subColl.Contains(folder) {
fmt.Println("目录已经存在")
return nil
}
// 开始创建文件
if err := os.Mkdir(filepath.Join(pFolder, folder), 0700); err != nil {
return err
}
funcs := template.FuncMap{"title": strings.Title}
{
// 创建
file := filepath.Join(pFolder, folder, "middleware.go")
f, err := os.Create(file)
if err != nil {
return errors.Cause(err)
}
t := template.Must(template.New("middleware").Funcs(funcs).Parse(middlewareTmp))
if err := t.Execute(f, name); err != nil {
return errors.Cause(err)
}
}
fmt.Println("创建中间件成功, 文件夹地址:", filepath.Join(pFolder, folder))
return nil
},
}
var middlewareTmp = `package {{.}}
import "github.com/gohade/hade/framework/gin"
// {{.|title}}Middleware 代表中间件函数
func {{.|title}}Middleware() gin.HandlerFunc {
return func(context *gin.Context) {
context.Next()
}
}
`

View File

@ -0,0 +1,215 @@
package command
import (
"fmt"
"github.com/AlecAivazis/survey/v2"
"os"
"path/filepath"
"strings"
"text/template"
"github.com/Superdanda/hade/framework"
"github.com/Superdanda/hade/framework/cobra"
"github.com/Superdanda/hade/framework/contract"
"github.com/Superdanda/hade/framework/util"
"github.com/jianfengye/collection"
"github.com/pkg/errors"
)
func initProviderCommand() *cobra.Command {
providerCommand.AddCommand(providerCreateCommand)
providerCommand.AddCommand(providerListCommand)
return providerCommand
}
var providerCommand = &cobra.Command{
Use: "provider",
Short: "服务相关命令",
RunE: func(c *cobra.Command, args []string) error {
if len(args) == 0 {
c.Help()
}
return nil
},
}
var providerListCommand = &cobra.Command{
Use: "list",
Short: "列出容器内的所有服务,列出它们的字符串凭证",
RunE: func(c *cobra.Command, args []string) error {
container := c.GetContainer()
nameList := container.NameList()
// 打印
for _, line := range nameList {
println(line)
}
return nil
},
}
var providerCreateCommand = &cobra.Command{
Use: "create",
Aliases: []string{"create", "init"},
Short: "创建服务",
RunE: func(c *cobra.Command, args []string) error {
container := c.GetContainer()
fmt.Println("创建一个服务")
var name string
var folder string
{
prompt := &survey.Input{
Message: "请输入服务名称(服务凭证)",
}
err := survey.AskOne(prompt, &name)
if err != nil {
return err
}
}
{
prompt := &survey.Input{
Message: "请输入服务所在目录名称(默认: 同服务名称):",
}
err := survey.AskOne(prompt, &folder)
if err != nil {
return err
}
}
// 检查服务是否存在
providers := container.(*framework.HadeContainer).NameList()
providerColl := collection.NewStrCollection(providers)
if providerColl.Contains(name) {
fmt.Println("服务名称已经存在")
return nil
}
if folder == "" {
folder = name
}
app := container.MustMake(contract.AppKey).(contract.App)
pFolder := app.ProviderFolder()
subFolders, err := util.SubDir(pFolder)
if err != nil {
return err
}
subColl := collection.NewStrCollection(subFolders)
if subColl.Contains(folder) {
fmt.Println("目录名称已经存在")
return nil
}
// 开始创建文件
if err := os.Mkdir(filepath.Join(pFolder, folder), 0700); err != nil {
return err
}
// 创建title这个模版方法
funcs := template.FuncMap{"title": strings.Title}
{
// 创建contract.go
file := filepath.Join(pFolder, folder, "contract.go")
f, err := os.Create(file)
if err != nil {
return errors.Cause(err)
}
// 使用contractTmp模版来初始化template并且让这个模版支持title方法即支持{{.|title}}
t := template.Must(template.New("contract").Funcs(funcs).Parse(contractTmp))
// 将name传递进入到template中渲染并且输出到contract.go 中
if err := t.Execute(f, name); err != nil {
return errors.Cause(err)
}
}
{
// 创建provider.go
file := filepath.Join(pFolder, folder, "provider.go")
f, err := os.Create(file)
if err != nil {
return err
}
t := template.Must(template.New("provider").Funcs(funcs).Parse(providerTmp))
if err := t.Execute(f, name); err != nil {
return err
}
}
{
// 创建service.go
file := filepath.Join(pFolder, folder, "service.go")
f, err := os.Create(file)
if err != nil {
return err
}
t := template.Must(template.New("service").Funcs(funcs).Parse(serviceTmp))
if err := t.Execute(f, name); err != nil {
return err
}
}
fmt.Println("创建服务成功, 文件夹地址:", filepath.Join(pFolder, folder))
fmt.Println("请不要忘记挂载新创建的服务")
return nil
},
}
var contractTmp = `package {{.}}
const {{.|title}}Key = "{{.}}"
type Service interface {
// 请在这里定义你的方法
Foo() string
}
`
var providerTmp = `package {{.}}
import (
"github.com/Superdanda/hade/framework"
)
type {{.|title}}Provider struct {
framework.ServiceProvider
c framework.Container
}
func (sp *{{.|title}}Provider) Name() string {
return {{.|title}}Key
}
func (sp *{{.|title}}Provider) Register(c framework.Container) framework.NewInstance {
return New{{.|title}}Service
}
func (sp *{{.|title}}Provider) IsDefer() bool {
return false
}
func (sp *{{.|title}}Provider) Params(c framework.Container) []interface{} {
return []interface{}{c}
}
func (sp *{{.|title}}Provider) Boot(c framework.Container) error {
return nil
}
`
var serviceTmp = `package {{.}}
import "github.com/Superdanda/hade/framework"
type {{.|title}}Service struct {
container framework.Container
}
func New{{.|title}}Service(params ...interface{}) (interface{}, error) {
container := params[0].(framework.Container)
return &{{.|title}}Service{container: container}, nil
}
func (s *{{.|title}}Service) Foo() string {
return ""
}
`

View File

@ -24,6 +24,9 @@ type Container interface {
//它是根据服务提供者注册的启动函数和传递的 params 参数实例化出来的
//这个函数在需要为不同参数启动不同实例的时候非常有用
MakeNew(key string, params []interface{}) (interface{}, error)
//NameList 返回所有提供服务者的字符串凭证
NameList() []string
}
type HadeContainer struct {
@ -89,6 +92,15 @@ func (h *HadeContainer) MakeNew(key string, params []interface{}) (interface{},
return h.make(key, params, true)
}
func (h *HadeContainer) NameList() []string {
ret := []string{}
for _, provider := range h.providers {
name := provider.Name()
ret = append(ret, name)
}
return ret
}
func (h *HadeContainer) make(key string, params []interface{}, forceNew bool) (interface{}, error) {
provider, err := h.findServiceProvider(key)
if err != nil {

7
framework/contract/id.go Normal file
View File

@ -0,0 +1,7 @@
package contract
const IDKey = "hade:id"
type IDService interface {
NewID() string
}

View File

@ -61,7 +61,7 @@ func (h HadeApp) LogFolder() string {
}
func (h HadeApp) ProviderFolder() string {
return filepath.Join(h.BaseFolder(), "provider")
return filepath.Join(h.AppFolder(), "provider")
}
func (h HadeApp) MiddlewareFolder() string {
@ -85,7 +85,7 @@ func (h HadeApp) HttpFolder() string {
}
func (h HadeApp) ConsoleFolder() string {
return filepath.Join(h.BaseFolder(), "console")
return filepath.Join(h.AppFolder(), "console")
}
func (h HadeApp) AppFolder() string {

View File

@ -0,0 +1,26 @@
package id
import "github.com/Superdanda/hade/framework"
type HadeIDProvider struct {
}
func (h HadeIDProvider) Register(container framework.Container) framework.NewInstance {
return NewHadeIDService
}
func (h HadeIDProvider) Boot(container framework.Container) error {
return nil
}
func (h HadeIDProvider) IsDefer() bool {
return false
}
func (h HadeIDProvider) Params(container framework.Container) []interface{} {
return []interface{}{}
}
func (h HadeIDProvider) Name() string {
return contract.IDKey
}

View File

@ -8,6 +8,7 @@ import (
"github.com/pkg/errors"
"os"
"path/filepath"
"runtime"
"time"
rotatelogs "github.com/lestrrat-go/file-rotatelogs"
@ -56,9 +57,20 @@ func NewHadeRotateLog(params ...interface{}) (interface{}, error) {
dateFormat = configService.GetString("log.date_format")
}
// 创建一个符号链接,指向当前正在写入的日志文件
linkName := rotatelogs.WithLinkName(filepath.Join(folder, file))
options := []rotatelogs.Option{linkName}
// 创建 rotatelogs 配置选项
var options []rotatelogs.Option
// 检查操作系统,避免在 Windows 上创建符号链接
if runtime.GOOS != "windows" {
// 创建一个符号链接,指向当前正在写入的日志文件
linkName := rotatelogs.WithLinkName(filepath.Join(folder, file))
options = append(options, linkName)
} else {
// Windows 下的替代方案(可选):不创建符号链接或其他处理方式
// 可以在此添加 Windows 特定的处理,例如创建硬链接或直接忽略
// 这里我们选择不添加 linkName 选项
//fmt.Println("Windows 系统下不创建符号链接")
}
// 从配置文件获取rotate_count信息
if configService.IsExist("log.rotate_count") {

40
go.mod
View File

@ -3,21 +3,47 @@ module github.com/Superdanda/hade
go 1.23.2
require (
github.com/AlecAivazis/survey/v2 v2.3.7
github.com/fsnotify/fsnotify v1.7.0
github.com/gofrs/flock v0.12.1
github.com/google/uuid v1.6.0
github.com/jianfengye/collection v1.4.2
github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible
github.com/mitchellh/mapstructure v1.5.0
github.com/pkg/errors v0.9.1
github.com/robfig/cron/v3 v3.0.0
github.com/sevlyar/go-daemon v0.1.6
github.com/spf13/cast v1.7.0
)
require (
github.com/fsnotify/fsnotify v1.7.0 // indirect
github.com/gofrs/flock v0.12.1 // indirect
github.com/google/uuid v1.6.0 // indirect
dario.cat/mergo v1.0.0 // indirect
github.com/Microsoft/go-winio v0.6.1 // indirect
github.com/ProtonMail/go-crypto v1.0.0 // indirect
github.com/cloudflare/circl v1.3.7 // indirect
github.com/cyphar/filepath-securejoin v0.2.4 // indirect
github.com/emirpasic/gods v1.18.1 // indirect
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
github.com/go-git/go-billy/v5 v5.5.0 // indirect
github.com/go-git/go-git/v5 v5.12.0 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
github.com/jonboulle/clockwork v0.4.0 // indirect
github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect
github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible // indirect
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
github.com/kevinburke/ssh_config v1.2.0 // indirect
github.com/lestrrat-go/strftime v1.1.0 // indirect
github.com/mitchellh/mapstructure v1.5.0 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/mattn/go-colorable v0.1.2 // indirect
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect
github.com/pjbgf/sha1cd v0.3.0 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect
github.com/skeema/knownhosts v1.2.2 // indirect
github.com/xanzy/ssh-agent v0.3.3 // indirect
golang.org/x/mod v0.12.0 // indirect
golang.org/x/term v0.20.0 // indirect
golang.org/x/tools v0.13.0 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
)
//gin
@ -54,7 +80,7 @@ require (
golang.org/x/arch v0.8.0 // indirect
golang.org/x/crypto v0.23.0 // indirect
golang.org/x/sys v0.22.0 // indirect
golang.org/x/text v0.15.0 // indirect
golang.org/x/text v0.15.0
)
//codra

127
go.sum
View File

@ -1,16 +1,37 @@
dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk=
dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
github.com/AlecAivazis/survey/v2 v2.3.7 h1:6I/u8FvytdGsgonrYsVn2t8t4QiRnh6QSTqkkhIiSjQ=
github.com/AlecAivazis/survey/v2 v2.3.7/go.mod h1:xUTIdE4KCOIjsBAE1JYsUPoCqYdZ1reCfTwbto0Fduo=
github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY=
github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow=
github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM=
github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2 h1:+vx7roKuyA63nhn5WAunQHLTznkw5W8b1Xc0dNjp83s=
github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2/go.mod h1:HBCaDeC1lPdgDeDbhX8XFpy1jqjK0IBG8W5K+xYqA0w=
github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78=
github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0=
github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0=
github.com/bytedance/sonic v1.11.6 h1:oUp34TzMlL+OY1OUWxHqsdkgC/Zfc85zGqw9siXjrc0=
github.com/bytedance/sonic v1.11.6/go.mod h1:LysEHSvpvDySVdC2f87zGWf6CIKJcAvqab1ZaiQtds4=
github.com/bytedance/sonic/loader v0.1.1 h1:c+e5Pt1k/cy5wMveRDyk2X4B9hF4g7an8N3zCYjJFNM=
github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU=
github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA=
github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU=
github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA=
github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y=
github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w=
github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg=
github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY=
github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4=
github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/creack/pty v1.1.17 h1:QeVUsEDNrLBW4tMgZHvxy18sKtr6VI492kBhUfhDJNI=
github.com/creack/pty v1.1.17/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg=
github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc=
github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ=
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
@ -19,6 +40,12 @@ github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uq
github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk=
github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=
github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic=
github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU=
github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow=
github.com/go-git/go-git/v5 v5.12.0 h1:7Md+ndsjrzZxbddRDZjF14qK+NN56sy6wkqaVrjZtys=
github.com/go-git/go-git/v5 v5.12.0/go.mod h1:FTM9VKtnI2m65hNI/TenDDDnUf2Q9FHnXYjuz9i5OEY=
github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s=
github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA=
@ -31,33 +58,58 @@ github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU=
github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
github.com/gofrs/flock v0.12.1 h1:MTLVXXHf8ekldpJk3AKicLij9MdwOWkZ+a/jHHZby9E=
github.com/gofrs/flock v0.12.1/go.mod h1:9zxTsyu5xtJ9DK+1tFZyibEV7y3uwDxPPfbxeeHCoD0=
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec h1:qv2VnGeEQHchGaZ/u7lxST/RaJw+cv273q79D81Xbog=
github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec/go.mod h1:Q48J4R4DvxnHolD5P8pOtXigYlRuPLGl6moFx3ulM68=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
github.com/jianfengye/collection v1.4.2 h1:8uzX8bM3OrQdfPYmg4eXvFNo1ZeeqdvNoKSvAksNJY4=
github.com/jianfengye/collection v1.4.2/go.mod h1:Oi7o4E0BF3Z8K8ql/Aa/O10/4ooirgGw+8JLQe+O3lQ=
github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST4RZ4=
github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK7fnezOII0kc=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uiaSepXwyf3o52HaUYcV+Tu66S3F5GA=
github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8=
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs=
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4=
github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM=
github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws=
github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ=
github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI=
github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc h1:RKf14vYWi2ttpEmkA4aQ3j4u9dStX2t4M8UM6qqNsG8=
github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc/go.mod h1:kopuH9ugFRkIXf3YoqHKyrJ9YfUFsckUU9S7B+XP+is=
github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible h1:Y6sqxHMyB1D2YSzWkLibYKgg+SwmyFU9dF2hn6MdTj4=
github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible/go.mod h1:ZQnN8lSECaebrkQytbHj4xNgtg8CR7RYXnPok8e0EHA=
github.com/lestrrat-go/strftime v1.1.0 h1:gMESpZy44/4pXLO/m+sL0yBd1W6LjgjrrD4a68Gapyg=
github.com/lestrrat-go/strftime v1.1.0/go.mod h1:uzeIB52CeUJenCo1syghlugshMysrqUT51HlxphXVeI=
github.com/mattn/go-colorable v0.1.2 h1:/bC9yWikZXAL9uJdulbSfyVNIR3n3trXl+v8+1sx8mU=
github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b h1:j7+1HpAFS1zy5+Q4qx1fWh90gTKwiN4QCGoY9TWyyO4=
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
@ -67,6 +119,8 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM=
github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4=
github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
@ -75,10 +129,16 @@ github.com/robfig/cron/v3 v3.0.0 h1:kQ6Cb7aHOHTSzNVNEhmp8EcWKLb4CbiMW9h9VyIhO4E=
github.com/robfig/cron/v3 v3.0.0/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M=
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8=
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4=
github.com/sevlyar/go-daemon v0.1.6 h1:EUh1MDjEM4BI109Jign0EaknA2izkOyi0LV3ro3QQGs=
github.com/sevlyar/go-daemon v0.1.6/go.mod h1:6dJpPatBT9eUwM5VCw9Bt6CdX9Tk6UWvhW3MebLDRKE=
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/skeema/knownhosts v1.2.2 h1:Iug2P4fLmDw9f41PB6thxUkNUkJzB5i+1/exaj40L3A=
github.com/skeema/knownhosts v1.2.2/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo=
github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w=
github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
@ -87,7 +147,10 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
@ -99,26 +162,84 @@ github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS
github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08=
github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE=
github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM=
github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
golang.org/x/arch v0.8.0 h1:3wRIsP3pM4yUptoR96otTUOXI367OS0+c9eeRi9doIc=
golang.org/x/arch v0.8.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI=
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc=
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac=
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI=
golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw=
golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk=
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ=
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg=
google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME=
gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

BIN
hade.exe

Binary file not shown.

View File

@ -8,7 +8,7 @@ import HelloWorld from './components/HelloWorld.vue'
<img alt="Vue logo" class="logo" src="@/assets/logo.svg" width="125" height="125" />
<div class="wrapper">
<HelloWorld msg="You did 12312312312" />
<HelloWorld msg="You did 前端测试" />
<nav>
<RouterLink to="/">Home</RouterLink>

View File

@ -1 +0,0 @@
[Info] 2024-10-22T09:12:51+08:00 "ceshiceshi" map[]

View File

@ -1 +0,0 @@
[Info] 2024-10-22T10:25:46+08:00 "ceshiceshi" map[]

View File

@ -1,2 +0,0 @@
[Info] 2024-10-22T10:26:03+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T10:26:58+08:00 "ceshiceshi" map[]

View File

@ -1,11 +0,0 @@
[Info] 2024-10-22T10:27:00+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T10:27:01+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T10:27:01+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T10:27:02+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T10:27:02+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T10:27:03+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T10:27:04+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T10:27:04+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T10:27:05+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T10:27:05+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T10:27:06+08:00 "ceshiceshi" map[]

View File

@ -1,2 +0,0 @@
[Info] 2024-10-22T10:41:19+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T10:41:33+08:00 "ceshiceshi" map[]

View File

@ -1,2 +0,0 @@
[Info] 2024-10-22T10:43:26+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T10:43:27+08:00 "ceshiceshi" map[]

View File

@ -1,2 +0,0 @@
[Info] 2024-10-22T10:55:05+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T10:55:23+08:00 "ceshiceshi" map[]

View File

@ -1,4 +0,0 @@
[Info] 2024-10-22T10:56:22+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T10:56:31+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T10:56:33+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T10:56:33+08:00 "ceshiceshi" map[]

View File

@ -1,6 +0,0 @@
[Info] 2024-10-22T12:40:24+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:40:25+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:40:27+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:40:55+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:40:56+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:40:57+08:00 "ceshiceshi" map[]

View File

@ -1,3 +0,0 @@
[Info] 2024-10-22T12:41:39+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:41:41+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:41:42+08:00 "ceshiceshi" map[]

View File

@ -1,6 +0,0 @@
[Info] 2024-10-22T12:42:02+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:42:05+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:42:09+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:42:10+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:42:10+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:42:11+08:00 "ceshiceshi" map[]

View File

@ -1,3 +0,0 @@
[Info] 2024-10-22T12:43:03+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:43:04+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:43:05+08:00 "ceshiceshi" map[]

View File

@ -1 +0,0 @@
[Info] 2024-10-22T12:45:08+08:00 "ceshiceshi" map[]

View File

@ -1,5 +0,0 @@
[Info] 2024-10-22T12:52:16+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:52:17+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:52:18+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:52:19+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:52:20+08:00 "ceshiceshi" map[]

View File

@ -1,2 +0,0 @@
[Info] 2024-10-22T12:53:15+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:53:17+08:00 "ceshiceshi" map[]

View File

@ -1,5 +0,0 @@
[Info] 2024-10-22T12:54:11+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:54:49+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:54:50+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:54:51+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:54:51+08:00 "ceshiceshi" map[]

View File

@ -1,5 +0,0 @@
[Info] 2024-10-22T12:56:47+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:56:48+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:56:49+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:56:51+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:56:52+08:00 "ceshiceshi" map[]

View File

@ -1,7 +0,0 @@
[Info] 2024-10-22T12:57:12+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:57:13+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:57:14+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:57:15+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:57:15+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:57:16+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:57:17+08:00 "ceshiceshi" map[]

View File

@ -1,4 +0,0 @@
[Info] 2024-10-22T12:58:04+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:58:05+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:58:05+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T12:58:07+08:00 "ceshiceshi" map[]

View File

@ -1,2 +0,0 @@
[Info] 2024-10-22T13:00:02+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T13:00:05+08:00 "ceshiceshi" map[]

View File

@ -1,2 +0,0 @@
[Info] 2024-10-22T13:12:50+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T13:12:50+08:00 "ceshiceshi" map[]

View File

@ -1,3 +0,0 @@
[Info] 2024-10-22T14:18:21+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:18:24+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:18:25+08:00 "ceshiceshi" map[]

View File

@ -1,3 +0,0 @@
[Info] 2024-10-22T14:19:03+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:19:04+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:19:06+08:00 "ceshiceshi" map[]

View File

@ -1,2 +0,0 @@
[Info] 2024-10-22T14:26:04+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:26:05+08:00 "ceshiceshi" map[]

View File

@ -1,4 +0,0 @@
[Info] 2024-10-22T14:27:08+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:27:52+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:27:52+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:27:53+08:00 "ceshiceshi" map[]

View File

@ -1,8 +0,0 @@
[Info] 2024-10-22T14:39:23+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:39:24+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:39:25+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:39:31+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:39:32+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:39:32+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:39:33+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:39:48+08:00 "ceshiceshi" map[]

View File

@ -1,2 +0,0 @@
[Info] 2024-10-22T14:40:03+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:40:39+08:00 "ceshiceshi" map[]

View File

@ -1,10 +0,0 @@
[Info] 2024-10-22T14:41:00+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:41:01+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:41:02+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:41:02+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:41:03+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:41:03+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:41:04+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:41:17+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:41:19+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:41:19+08:00 "ceshiceshi" map[]

View File

@ -1 +0,0 @@
[Info] 2024-10-22T14:43:19+08:00 "ceshiceshi" map[]

View File

@ -1 +0,0 @@
[Info] 2024-10-22T14:49:03+08:00 "ceshiceshi" map[]

View File

@ -1,2 +0,0 @@
[Info] 2024-10-22T14:50:54+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:50:55+08:00 "ceshiceshi" map[]

View File

@ -1,6 +0,0 @@
[Info] 2024-10-22T14:52:42+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:52:43+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:52:44+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:52:45+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:52:53+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:52:53+08:00 "ceshiceshi" map[]

View File

@ -1,11 +0,0 @@
[Info] 2024-10-22T14:53:27+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:53:29+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:53:30+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:53:30+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:53:47+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:53:48+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:53:48+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:53:49+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:53:50+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:53:51+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:53:54+08:00 "ceshiceshi" map[]

View File

@ -1,16 +0,0 @@
[Info] 2024-10-22T14:54:04+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:54:05+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:54:06+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:54:06+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:54:07+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:54:10+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:54:12+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:54:18+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:54:19+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:54:19+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:54:20+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:54:20+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:54:21+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:54:21+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:54:22+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:54:23+08:00 "ceshiceshi" map[]

View File

@ -1,12 +0,0 @@
[Info] 2024-10-22T14:56:22+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:56:23+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:56:24+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:56:25+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:56:29+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:56:30+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:56:30+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:56:31+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:56:31+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:56:31+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:56:32+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:56:32+08:00 "ceshiceshi" map[]

View File

@ -1,7 +0,0 @@
[Info] 2024-10-22T14:57:14+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:57:15+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:57:16+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:57:17+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:57:35+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:57:36+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:57:36+08:00 "ceshiceshi" map[]

View File

@ -1,3 +0,0 @@
[Info] 2024-10-22T14:59:09+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:59:10+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T14:59:10+08:00 "ceshiceshi" map[]

View File

@ -1,6 +0,0 @@
[Info] 2024-10-22T15:05:47+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:05:47+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:05:49+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:05:50+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:05:54+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:05:57+08:00 "ceshiceshi" map[]

View File

@ -1,6 +0,0 @@
[Info] 2024-10-22T15:06:25+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:06:25+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:06:26+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:06:27+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:06:27+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:06:28+08:00 "ceshiceshi" map[]

View File

@ -1,5 +0,0 @@
[Info] 2024-10-22T15:08:03+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:08:19+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:08:19+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:08:20+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:08:21+08:00 "ceshiceshi" map[]

View File

@ -1,4 +0,0 @@
[Info] 2024-10-22T15:11:33+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:11:34+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:11:35+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:11:36+08:00 "ceshiceshi" map[]

View File

@ -1,9 +0,0 @@
[Info] 2024-10-22T15:13:46+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:13:47+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:13:48+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:13:49+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:13:49+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:13:50+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:13:50+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:13:51+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:13:51+08:00 "ceshiceshi" map[]

View File

@ -1,6 +0,0 @@
[Info] 2024-10-22T15:15:37+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:15:39+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:15:40+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:15:41+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:15:41+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:15:42+08:00 "ceshiceshi" map[]

View File

@ -1,22 +0,0 @@
[Info] 2024-10-22T15:16:23+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:16:27+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:16:27+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:16:28+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:16:31+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:16:31+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:16:32+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:16:32+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:16:33+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:16:34+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:16:34+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:16:35+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:16:35+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:16:36+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:16:36+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:16:37+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:16:37+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:16:38+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:16:38+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:16:39+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:16:39+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:16:58+08:00 "ceshiceshi" map[]

View File

@ -1,36 +0,0 @@
[Info] 2024-10-22T15:17:08+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:09+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:09+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:10+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:11+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:15+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:18+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:19+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:19+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:20+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:21+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:21+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:22+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:22+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:23+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:23+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:24+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:24+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:25+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:25+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:26+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:27+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:27+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:28+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:29+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:30+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:30+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:31+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:31+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:32+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:32+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:33+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:33+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:34+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:34+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:17:35+08:00 "ceshiceshi" map[]

View File

@ -1,9 +0,0 @@
[Info] 2024-10-22T15:23:25+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:23:30+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:23:30+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:23:32+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:23:33+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:23:33+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:23:34+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:23:34+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:23:35+08:00 "ceshiceshi" map[]

View File

@ -1,8 +0,0 @@
[Info] 2024-10-22T15:24:20+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:24:21+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:24:21+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:24:48+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:24:49+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:24:50+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:24:51+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T15:24:51+08:00 "ceshiceshi" map[]

View File

@ -1,2 +0,0 @@
[Info] 2024-10-22T16:02:38+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:02:41+08:00 "ceshiceshi" map[]

View File

@ -1,6 +0,0 @@
[Info] 2024-10-22T16:06:50+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:06:51+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:06:52+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:06:52+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:06:53+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:06:59+08:00 "ceshiceshi" map[]

View File

@ -1,8 +0,0 @@
[Info] 2024-10-22T16:07:00+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:07:00+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:07:40+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:07:40+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:07:41+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:07:42+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:07:42+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:07:43+08:00 "ceshiceshi" map[]

View File

@ -1,10 +0,0 @@
[Info] 2024-10-22T16:08:20+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:08:22+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:08:22+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:08:23+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:08:23+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:08:25+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:08:25+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:08:26+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:08:27+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:08:27+08:00 "ceshiceshi" map[]

View File

@ -1,7 +0,0 @@
[Info] 2024-10-22T16:12:29+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:12:30+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:12:31+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:12:32+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:12:32+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:12:33+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:12:54+08:00 "ceshiceshi" map[]

View File

@ -1,10 +0,0 @@
[Info] 2024-10-22T16:13:05+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:13:06+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:13:07+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:13:07+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:13:10+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:13:53+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:13:53+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:13:54+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:13:54+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:13:55+08:00 "ceshiceshi" map[]

View File

@ -1,4 +0,0 @@
[Info] 2024-10-22T16:17:37+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:17:42+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:17:42+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:17:43+08:00 "ceshiceshi" map[]

View File

@ -1,3 +0,0 @@
[Info] 2024-10-22T16:18:48+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:18:50+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:18:51+08:00 "ceshiceshi" map[]

View File

@ -1,6 +0,0 @@
[Info] 2024-10-22T16:24:01+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:24:03+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:24:04+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:24:04+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:24:05+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:24:05+08:00 "ceshiceshi" map[]

View File

@ -1,7 +0,0 @@
[Info] 2024-10-22T16:43:21+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:43:22+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:43:23+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:43:23+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:43:24+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:43:24+08:00 "ceshiceshi" map[]
[Info] 2024-10-22T16:43:25+08:00 "ceshiceshi" map[]