mirror of
https://github.com/ZSCNetSupportDept/scheduler.git
synced 2025-10-28 04:25:03 +08:00
1
This commit is contained in:
7
Makefile
7
Makefile
@@ -18,4 +18,11 @@ CONFIG_FILE_PATH = $(PWD)/ignore/secret.yaml
|
||||
# 如果运行,使用的成员信息文件在哪里?
|
||||
CSV_PATH = $(PWD)/ignore/aa.csv
|
||||
|
||||
# 运行端口
|
||||
LISTEN_PORT = 25005
|
||||
# 模板文件的目录
|
||||
TEMPLATE_DIR = $(PWD)/src/templates
|
||||
# 前端文件的目录
|
||||
FRONTEND_PATH = $(PWD)/src/FrontEnd
|
||||
|
||||
include build/Makefile
|
||||
|
||||
@@ -15,5 +15,5 @@ build: BackEnd
|
||||
|
||||
|
||||
run:
|
||||
$(TARGET_PATH)/scheduler --config $(CONFIG_FILE_PATH) --csv-path $(CSV_PATH)
|
||||
TEMPLATE=$(TEMPLATE_DIR) FRONTEND=$(FRONTEND_PATH) CSV_PATH=$(CSV_PATH) $(TARGET_PATH)/scheduler --config $(CONFIG_FILE_PATH)
|
||||
|
||||
|
||||
18
config.yaml
Normal file
18
config.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
# 其中有的配置可以通过环境变量覆盖,前端,模板的路径通过环境变量设置
|
||||
# 这是一个示例配置文件。
|
||||
app:
|
||||
Name: "scheduler for ZSC Network Support staff"
|
||||
ListenPort: 25005
|
||||
File: "member.csv" #成员信息文件的路径,看文档
|
||||
DB:
|
||||
Type: "SQLite"
|
||||
Path: "./scheduler.db"
|
||||
Port: ""
|
||||
User: ""
|
||||
Password: ""
|
||||
Name: ""
|
||||
business:
|
||||
Session: "2024-2025" #学年
|
||||
Semester: 1 #学期,1 或 2
|
||||
StartTime: "2025-3-10" #开始值班的日期,日期必须是星期一
|
||||
Week: 15 #准备值班多少周
|
||||
2
member.csv
Normal file
2
member.csv
Normal file
@@ -0,0 +1,2 @@
|
||||
工号,姓名,性别,有空,有空(备用),权限
|
||||
1001,示例,1,0,0,1
|
||||
|
@@ -3,6 +3,7 @@ package config
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"strconv"
|
||||
|
||||
"github.com/golang-module/carbon/v2"
|
||||
"github.com/spf13/pflag"
|
||||
@@ -34,21 +35,25 @@ func readconfig() {
|
||||
if err := viper.Unmarshal(&Default); err != nil {
|
||||
panic(fmt.Errorf("映射配置到结构体失败: %s", err))
|
||||
}
|
||||
|
||||
FrontEnd = os.Getenv("FRONTEND")
|
||||
}
|
||||
|
||||
func parseArgs() {
|
||||
pflag.String("config", "./config.yaml", "the path to config file.")
|
||||
pflag.Bool("init-db", false, "whether to initialize the database on starting,useful when migrating to a new one.")
|
||||
pflag.String("csv-path", "./member.csv", "the CSV file containing member information")
|
||||
viper.BindPFlags(pflag.CommandLine)
|
||||
pflag.Parse()
|
||||
pathToConfigure = viper.GetString("config")
|
||||
InitDB = viper.GetBool("init-db")
|
||||
CSVPath = viper.GetString("csv-path")
|
||||
}
|
||||
|
||||
func overrides() {
|
||||
if CSVPath != "" {
|
||||
if CSVPath := os.Getenv("CSV_PATH"); CSVPath != "" {
|
||||
Default.App.File = CSVPath
|
||||
}
|
||||
|
||||
if ListenPort, err := strconv.Atoi(os.Getenv("LISTEN_PORT")); ListenPort != 0 && err != nil {
|
||||
Default.App.ListenPort = ListenPort
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,4 +26,4 @@ type Config struct {
|
||||
var pathToConfigure string //配置文件的路径
|
||||
var Default Config //系统的默认配置
|
||||
var InitDB bool
|
||||
var CSVPath string
|
||||
var FrontEnd string
|
||||
|
||||
13
src/main.go
13
src/main.go
@@ -27,8 +27,10 @@ func main() {
|
||||
route.Route(app) //注册路由表
|
||||
route.Middleware(app) //注册中间件
|
||||
|
||||
// 暂时在初始化时不注册模板,因为用不上
|
||||
//registerTemplate(app) //注册模板
|
||||
renderer := tl.Tlw{
|
||||
Tl: template.Must(template.ParseGlob(os.Getenv("TEMPLATE") + "/*.html")),
|
||||
}
|
||||
app.Renderer = renderer //注册模板
|
||||
|
||||
listenAddress := fmt.Sprintf(":%d", config.Default.App.ListenPort)
|
||||
|
||||
@@ -48,10 +50,3 @@ func csv() {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
func registerTemplate(app *echo.Echo) {
|
||||
renderer := tl.Tlw{
|
||||
Tl: template.Must(template.ParseGlob("templates/*.html")),
|
||||
}
|
||||
app.Renderer = renderer
|
||||
}
|
||||
|
||||
@@ -3,13 +3,14 @@ package route
|
||||
import (
|
||||
"github.com/labstack/echo/v4"
|
||||
"github.com/labstack/echo/v4/middleware"
|
||||
"zsxyww.com/scheduler/config"
|
||||
"zsxyww.com/scheduler/handler"
|
||||
)
|
||||
|
||||
func Route(app *echo.Echo) {
|
||||
// here is the route for our site
|
||||
staticFiles := app.Group("/*")
|
||||
staticFiles.Use(middleware.Static("./FrontEnd"))
|
||||
staticFiles.Use(middleware.Static(config.FrontEnd))
|
||||
|
||||
api := app.Group("/api/")
|
||||
api.GET("getAssignment", handler.GetAssignment)
|
||||
|
||||
Reference in New Issue
Block a user