add cli load
This commit is contained in:
91
internal/cli/cli.go
Normal file
91
internal/cli/cli.go
Normal file
@@ -0,0 +1,91 @@
|
||||
package cli
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"log"
|
||||
"opencatd-open/internal/model"
|
||||
"opencatd-open/pkg/store"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/duke-git/lancet/v2/fileutil"
|
||||
|
||||
"github.com/google/uuid"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
var LoadCmd = &cobra.Command{
|
||||
Use: "load",
|
||||
Short: "import user.json -> db",
|
||||
Long: "\nimport user.json -> db",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
db := store.GetDB()
|
||||
var cont int64
|
||||
if err := db.Model(model.User{}).Count(&cont).Error; err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
if cont == 0 {
|
||||
fmt.Println("创建管理员之后再操作")
|
||||
}
|
||||
if !fileutil.IsExist("./db/user.json") {
|
||||
log.Fatalln("404! user.json is not found.")
|
||||
return
|
||||
}
|
||||
file, err := os.Open("./db/user.json")
|
||||
if err != nil {
|
||||
fmt.Println("Error opening file:", err)
|
||||
return
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
var usermap []map[string]string
|
||||
|
||||
if err := json.NewDecoder(file).Decode(&usermap); err != nil {
|
||||
fmt.Println("解析文件失败:", err)
|
||||
return
|
||||
}
|
||||
for _, um := range usermap {
|
||||
var name string
|
||||
if um["username"] != "" {
|
||||
name = um["name"]
|
||||
} else if um["name"] == "" {
|
||||
name = um["username"]
|
||||
} else {
|
||||
fmt.Println("获取不到数据")
|
||||
continue
|
||||
}
|
||||
var user = model.User{
|
||||
Username: name,
|
||||
Name: name,
|
||||
Tokens: []model.Token{
|
||||
{
|
||||
Name: "default",
|
||||
Key: "sk-team-" + strings.ReplaceAll(uuid.New().String(), "-", ""),
|
||||
},
|
||||
{
|
||||
Name: name,
|
||||
Key: um["token"],
|
||||
},
|
||||
},
|
||||
}
|
||||
if err := db.Create(&user).Error; err != nil {
|
||||
fmt.Printf("\nCreate User %s Error:%s", user.Username, err)
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
}
|
||||
|
||||
var SaveCmd = &cobra.Command{
|
||||
Use: "save",
|
||||
Short: "backup user info -> user.json",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
|
||||
},
|
||||
}
|
||||
|
||||
func init() {
|
||||
// SaveCmd.Flags().StringP("user", "u", "", "Save User")
|
||||
}
|
||||
Reference in New Issue
Block a user