Files
ops/gin_ops/main.go
T
2025-07-02 21:10:47 +08:00

112 lines
2.6 KiB
Go

package main
import (
"fmt"
"os"
"saas/models"
"saas/routers"
"github.com/gin-gonic/gin"
"gopkg.in/yaml.v3"
)
func init() {
}
func main() {
fmt.Println("main_init!")
data_path := "./data/upload/"
avatar_path := "./data/avatar/"
config_file_path := "./data/config.yaml"
config_temp_path := "./def_config/config_temp.yaml"
// 直接尝试创建所有必要的目录
err := os.MkdirAll(data_path, 0755)
if err != nil {
fmt.Printf("创建文件夹失败: %v\n", err)
return
}
err = os.MkdirAll(avatar_path, 0755)
if err != nil {
fmt.Printf("创建文件夹失败: %v\n", err)
return
}
//fmt.Println("文件夹创建成功或已存在")
//尝试读取配置
if !models.File_exists(config_file_path) {
fmt.Println("读取配置失败")
//复制配置模板
fmt.Println("复制配置模板")
input, err := os.ReadFile(config_temp_path)
if err != nil {
fmt.Println(err)
return
}
err = os.WriteFile(config_file_path, input, 0644)
if err != nil {
fmt.Println(err)
return
}
fmt.Printf("需要修改此配置:%s\n", config_file_path)
return
}
//读取默认配置
data, err := os.ReadFile(config_file_path)
if err != nil {
fmt.Println(err)
return
}
if err := yaml.Unmarshal(data, &models.Configs); err != nil {
fmt.Println(err)
return
}
if models.Configs["configed"] == false {
fmt.Printf("需要将:%s 内的configed设置为true", config_file_path)
return
}
//统一初始化
models.All_config_init()
r := gin.Default()
r.LoadHTMLGlob("templates/*")
//
r.StaticFile("/favicon.ico", "./static/favicon.ico")
r.StaticFile("/robots.txt", "./static/robots.txt")
r.Static("/static/", "./static/static/")
r.Static("/dist/", "./static/dist/")
//静态用户上传的文件
r.Static("/avatar/", avatar_path)
//store := cookie.NewStore([]byte("secret"))
// 自定义 404 页面(需要提前加载模板)
r.NoRoute(func(ctx *gin.Context) {
ctx.HTML(404, "error_404.html", gin.H{})
})
routers.Router_def(r.Group("/"))
routers.Router_api(r.Group("/api/"))
routers.Router_file(r.Group("/file/"))
var http_port = models.Wed_configs.Host + ":" + models.Wed_configs.Port
var gin_port = "0.0.0.0" + ":" + models.Wed_configs.Port
if models.Wed_configs.Tls {
if models.Wed_configs.Cert_public_path == "" || models.Wed_configs.Cert_private_path == "" {
fmt.Printf("需要配置证书路径")
return
} else {
fmt.Println("https://" + http_port)
r.RunTLS(gin_port, models.Wed_configs.Cert_public_path, models.Wed_configs.Cert_private_path)
}
} else {
fmt.Println("http://" + http_port)
r.Run(gin_port)
}
}