|
|
@@ -2,16 +2,17 @@ package client
|
|
|
|
|
|
import (
|
|
|
"bytes"
|
|
|
+ "compress/gzip"
|
|
|
+ "encoding/json"
|
|
|
"fmt"
|
|
|
"io"
|
|
|
+ "io/ioutil"
|
|
|
"mime/multipart"
|
|
|
"net/http"
|
|
|
"os"
|
|
|
"path/filepath"
|
|
|
- "encoding/json"
|
|
|
- "compress/gzip"
|
|
|
- "io/ioutil"
|
|
|
"strings"
|
|
|
+
|
|
|
"git.qianqiusoft.com/qianqiusoft/light-apiengine/utils"
|
|
|
)
|
|
|
|
|
|
@@ -20,23 +21,23 @@ type EngineClient struct {
|
|
|
}
|
|
|
|
|
|
type ResponeResult struct {
|
|
|
- Code int32 `json:"code"`
|
|
|
+ Code int32 `json:"code"`
|
|
|
//描述
|
|
|
- Msg string `json:"msg"`
|
|
|
+ Msg string `json:"msg"`
|
|
|
//数据
|
|
|
- Data []GenerateResult `json:"data"`
|
|
|
+ Data []GenerateResult `json:"data"`
|
|
|
}
|
|
|
type GenerateResult struct {
|
|
|
- Name string `json:"name"`
|
|
|
+ Name string `json:"name"`
|
|
|
Content []byte `json:"content"`
|
|
|
- Type string `json:"type"`
|
|
|
+ Type string `json:"type"`
|
|
|
}
|
|
|
|
|
|
func NewEngineClient(project_name string) *EngineClient {
|
|
|
return &EngineClient{project_name}
|
|
|
}
|
|
|
|
|
|
-func (c * EngineClient)InitDefalutFile(project_name string) {
|
|
|
+func (c *EngineClient) InitDefalutFile(project_name string) {
|
|
|
c.ProjectName = project_name
|
|
|
os.MkdirAll("controllers", os.ModePerm)
|
|
|
os.MkdirAll("models", os.ModePerm)
|
|
|
@@ -46,48 +47,48 @@ func (c * EngineClient)InitDefalutFile(project_name string) {
|
|
|
os.MkdirAll("doc", os.ModePerm)
|
|
|
os.MkdirAll("web", os.ModePerm)
|
|
|
|
|
|
- _,err:=os.Stat(project_name+".xml")
|
|
|
- if os.IsNotExist(err){
|
|
|
- xml:=strings.Replace(DefaultProjectXML, "{project_name}", project_name,-1)
|
|
|
- ioutil.WriteFile(project_name+".xml",[]byte(xml), os.ModePerm)
|
|
|
+ _, err := os.Stat(project_name + ".xml")
|
|
|
+ if os.IsNotExist(err) {
|
|
|
+ xml := strings.Replace(DefaultProjectXML, "{project_name}", project_name, -1)
|
|
|
+ ioutil.WriteFile(project_name+".xml", []byte(xml), os.ModePerm)
|
|
|
}
|
|
|
|
|
|
- _,err =os.Stat(project_name+".xsd")
|
|
|
+ _, err = os.Stat(project_name + ".xsd")
|
|
|
if os.IsNotExist(err) {
|
|
|
ioutil.WriteFile(project_name+".xsd", []byte(XSD), os.ModePerm)
|
|
|
}
|
|
|
|
|
|
- _,err =os.Stat("Dockerfile")
|
|
|
+ _, err = os.Stat("Dockerfile")
|
|
|
if os.IsNotExist(err) {
|
|
|
- xml:=strings.Replace(DockerFile, "{project_name}", project_name,-1)
|
|
|
+ xml := strings.Replace(DockerFile, "{project_name}", project_name, -1)
|
|
|
ioutil.WriteFile("Dockerfile", []byte(xml), os.ModePerm)
|
|
|
}
|
|
|
- _,err =os.Stat("build_docker.sh")
|
|
|
+ _, err = os.Stat("build_docker.sh")
|
|
|
if os.IsNotExist(err) {
|
|
|
- xml:=strings.Replace(BuildSH, "{project_name}", project_name,-1)
|
|
|
+ xml := strings.Replace(BuildSH, "{project_name}", project_name, -1)
|
|
|
ioutil.WriteFile("build_docker.sh", []byte(xml), os.ModePerm)
|
|
|
}
|
|
|
|
|
|
- _,err =os.Stat("README.md")
|
|
|
+ _, err = os.Stat("README.md")
|
|
|
if os.IsNotExist(err) {
|
|
|
- xml:=strings.Replace(MARK_DOWN, "{project_name}", project_name,-1)
|
|
|
- xml =strings.Replace(xml, "{!}", "`",-1)
|
|
|
+ xml := strings.Replace(MARK_DOWN, "{project_name}", project_name, -1)
|
|
|
+ xml = strings.Replace(xml, "{!}", "`", -1)
|
|
|
ioutil.WriteFile("README.md", []byte(xml), os.ModePerm)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func (c * EngineClient)GenerateCurrentProject() {
|
|
|
- path,_:=utils.GetCurrentPath()
|
|
|
+func (c *EngineClient) GenerateCurrentProject() {
|
|
|
+ path, _ := utils.GetCurrentPath()
|
|
|
c.InitDefalutFile(c.ProjectName)
|
|
|
- c.Generate(path+c.ProjectName+".xml")
|
|
|
+ c.Generate(path + c.ProjectName + ".xml")
|
|
|
}
|
|
|
|
|
|
-func (c * EngineClient)Generate(xmlfile string) {
|
|
|
+func (c *EngineClient) Generate(xmlfile string) {
|
|
|
var result ResponeResult
|
|
|
bs := DoRequest(xmlfile)
|
|
|
- if bs !=nil {
|
|
|
- err:=json.Unmarshal(bs.Bytes(), &result)
|
|
|
- if err!=nil{
|
|
|
+ if bs != nil {
|
|
|
+ err := json.Unmarshal(bs.Bytes(), &result)
|
|
|
+ if err != nil {
|
|
|
fmt.Println(err.Error())
|
|
|
}
|
|
|
for i := 0; i < len(result.Data); i++ {
|
|
|
@@ -97,33 +98,41 @@ func (c * EngineClient)Generate(xmlfile string) {
|
|
|
result.Data[i].Content = unzip.Bytes()
|
|
|
}
|
|
|
for i := 0; i < len(result.Data); i++ {
|
|
|
- path:= result.Data[i].Name
|
|
|
+ path := result.Data[i].Name
|
|
|
//fmt.Println(path)
|
|
|
path = path[len(c.ProjectName)+1:]
|
|
|
fmt.Println(path)
|
|
|
- ft:=result.Data[i].Type
|
|
|
+ ft := result.Data[i].Type
|
|
|
if result.Data[i].Type == "main" {
|
|
|
- }else if ft == "config" || ft == "ci" {
|
|
|
- _,err := os.Stat(path)
|
|
|
- if err == nil{
|
|
|
- fmt.Println(path+"已经存在,忽略...")
|
|
|
- }else {
|
|
|
- ioutil.WriteFile(path, result.Data[i].Content,os.ModePerm)
|
|
|
+ } else if ft == "config" || ft == "ci" {
|
|
|
+ _, err := os.Stat(path)
|
|
|
+ if err == nil {
|
|
|
+ fmt.Println(path + "已经存在,忽略...")
|
|
|
+ } else {
|
|
|
+ ioutil.WriteFile(path, result.Data[i].Content, os.ModePerm)
|
|
|
}
|
|
|
- }else if ft =="controllers"{
|
|
|
- if strings.Index(path, "_gen.go")>0 {
|
|
|
- ioutil.WriteFile(path, result.Data[i].Content,os.ModePerm)
|
|
|
- }else {
|
|
|
+ } else if ft == "controllers" {
|
|
|
+ if strings.Index(path, "_gen.go") > 0 {
|
|
|
+ ioutil.WriteFile(path, result.Data[i].Content, os.ModePerm)
|
|
|
+ } else {
|
|
|
_, err := os.Stat(path)
|
|
|
- if err==nil{
|
|
|
- ioutil.WriteFile(path+"_new", result.Data[i].Content,os.ModePerm)
|
|
|
- }else if os.IsNotExist(err){
|
|
|
- ioutil.WriteFile(path, result.Data[i].Content,os.ModePerm)
|
|
|
+ if err == nil {
|
|
|
+ ioutil.WriteFile(path+"_new", result.Data[i].Content, os.ModePerm)
|
|
|
+ } else if os.IsNotExist(err) {
|
|
|
+ ioutil.WriteFile(path, result.Data[i].Content, os.ModePerm)
|
|
|
}
|
|
|
}
|
|
|
- }else {
|
|
|
- err:=ioutil.WriteFile(path, result.Data[i].Content,os.ModePerm)
|
|
|
- if err !=nil{
|
|
|
+ } else if ft == "routers" {
|
|
|
+ _, err := os.Stat(path)
|
|
|
+ if err == nil {
|
|
|
+ fmt.Println(path + "已经存在")
|
|
|
+ ioutil.WriteFile(path+"_new", result.Data[i].Content, os.ModePerm)
|
|
|
+ } else {
|
|
|
+ ioutil.WriteFile(path, result.Data[i].Content, os.ModePerm)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ err := ioutil.WriteFile(path, result.Data[i].Content, os.ModePerm)
|
|
|
+ if err != nil {
|
|
|
fmt.Println(err.Error())
|
|
|
}
|
|
|
}
|
|
|
@@ -131,8 +140,7 @@ func (c * EngineClient)Generate(xmlfile string) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-func unzipbytes(bs *bytes.Buffer) bytes.Buffer{
|
|
|
+func unzipbytes(bs *bytes.Buffer) bytes.Buffer {
|
|
|
r, _ := gzip.NewReader(bs)
|
|
|
defer r.Close()
|
|
|
var b bytes.Buffer
|
|
|
@@ -142,8 +150,8 @@ func unzipbytes(bs *bytes.Buffer) bytes.Buffer{
|
|
|
return b
|
|
|
}
|
|
|
|
|
|
-func DoRequest(xmlfile string) *bytes.Buffer{
|
|
|
- server:="http://qianqiusoft.com:6166/api/v1/develop/generate"
|
|
|
+func DoRequest(xmlfile string) *bytes.Buffer {
|
|
|
+ server := "http://qianqiusoft.com:6166/api/v1/develop/generate"
|
|
|
request, err := newfileUploadRequest(server, nil, "xmlfile", xmlfile)
|
|
|
if err != nil {
|
|
|
fmt.Println(err)
|
|
|
@@ -163,7 +171,7 @@ func DoRequest(xmlfile string) *bytes.Buffer{
|
|
|
fmt.Println(resp.Header)
|
|
|
|
|
|
//fmt.Println(body)
|
|
|
- return body
|
|
|
+ return body
|
|
|
}
|
|
|
return nil
|
|
|
}
|
|
|
@@ -194,4 +202,4 @@ func newfileUploadRequest(uri string, params map[string]string, paramName, path
|
|
|
request, err := http.NewRequest("POST", uri, body)
|
|
|
request.Header.Add("Content-Type", writer.FormDataContentType())
|
|
|
return request, err
|
|
|
-}
|
|
|
+}
|