|
8 | 8 | "io" |
9 | 9 | "mime/multipart" |
10 | 10 | "os" |
| 11 | + "path" |
11 | 12 | "path/filepath" |
12 | 13 | "strconv" |
13 | 14 | "strings" |
@@ -739,36 +740,44 @@ func (autoCodeService *AutoCodeService) InstallPlugin(file *multipart.FileHeader |
739 | 740 | paths = filterFile(paths) |
740 | 741 | var webIndex = -1 |
741 | 742 | var serverIndex = -1 |
| 743 | + webPlugin := "" |
| 744 | + serverPlugin := "" |
| 745 | + |
742 | 746 | for i := range paths { |
743 | 747 | paths[i] = filepath.ToSlash(paths[i]) |
744 | 748 | pathArr := strings.Split(paths[i], "/") |
745 | 749 | ln := len(pathArr) |
746 | | - if ln < 2 { |
| 750 | + |
| 751 | + if ln < 4 { |
747 | 752 | continue |
748 | 753 | } |
749 | | - if pathArr[ln-2] == "server" && pathArr[ln-1] == "plugin" { |
750 | | - serverIndex = i |
| 754 | + if pathArr[2]+"/"+pathArr[3] == `server/plugin` && len(serverPlugin) == 0 { |
| 755 | + serverPlugin = path.Join(pathArr[0], pathArr[1], pathArr[2], pathArr[3]) |
751 | 756 | } |
752 | | - if pathArr[ln-2] == "web" && pathArr[ln-1] == "plugin" { |
753 | | - webIndex = i |
| 757 | + if pathArr[2]+"/"+pathArr[3] == `web/plugin` && len(webPlugin) == 0 { |
| 758 | + webPlugin = path.Join(pathArr[0], pathArr[1], pathArr[2], pathArr[3]) |
754 | 759 | } |
755 | 760 | } |
756 | | - if webIndex == -1 && serverIndex == -1 { |
| 761 | + if len(serverPlugin) == 0 && len(webPlugin) == 0 { |
757 | 762 | zap.L().Error("非标准插件,请按照文档自动迁移使用") |
758 | 763 | return webIndex, serverIndex, errors.New("非标准插件,请按照文档自动迁移使用") |
759 | 764 | } |
760 | 765 |
|
761 | | - if webIndex != -1 { |
762 | | - err = installation(paths[webIndex], global.GVA_CONFIG.AutoCode.Server, global.GVA_CONFIG.AutoCode.Web) |
| 766 | + if len(serverPlugin) != 0 { |
| 767 | + err = installation(serverPlugin, global.GVA_CONFIG.AutoCode.Server, global.GVA_CONFIG.AutoCode.Server) |
763 | 768 | if err != nil { |
764 | 769 | return webIndex, serverIndex, err |
765 | 770 | } |
766 | 771 | } |
767 | 772 |
|
768 | | - if serverIndex != -1 { |
769 | | - err = installation(paths[serverIndex], global.GVA_CONFIG.AutoCode.Server, global.GVA_CONFIG.AutoCode.Server) |
| 773 | + if len(webPlugin) != 0 { |
| 774 | + err = installation(webPlugin, global.GVA_CONFIG.AutoCode.Server, global.GVA_CONFIG.AutoCode.Web) |
| 775 | + if err != nil { |
| 776 | + return webIndex, serverIndex, err |
| 777 | + } |
770 | 778 | } |
771 | | - return webIndex, serverIndex, err |
| 779 | + |
| 780 | + return 1, 1, err |
772 | 781 | } |
773 | 782 |
|
774 | 783 | func installation(path string, formPath string, toPath string) error { |
|
0 commit comments