feat: complete mise env base code
This commit is contained in:
@@ -52,14 +52,16 @@ func (AgentToken) TableName() string {
|
||||
|
||||
// AgentTask Agent 任务配置(用于下发给 Agent)
|
||||
type AgentTask struct {
|
||||
ID uint `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Command string `json:"command"`
|
||||
Schedule string `json:"schedule"`
|
||||
Timeout int `json:"timeout"`
|
||||
WorkDir string `json:"work_dir"`
|
||||
Envs string `json:"envs"`
|
||||
Enabled bool `json:"enabled"`
|
||||
ID uint `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Command string `json:"command"`
|
||||
Schedule string `json:"schedule"`
|
||||
Timeout int `json:"timeout"`
|
||||
WorkDir string `json:"work_dir"`
|
||||
Envs string `json:"envs"`
|
||||
Language string `json:"language"`
|
||||
LangVersion string `json:"lang_version"`
|
||||
Enabled bool `json:"enabled"`
|
||||
}
|
||||
|
||||
// AgentTaskResult Agent 上报的任务执行结果
|
||||
|
||||
@@ -1,20 +1,22 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"github.com/engigu/baihu-panel/internal/constant"
|
||||
"time"
|
||||
|
||||
"github.com/engigu/baihu-panel/internal/constant"
|
||||
)
|
||||
|
||||
// Dependency 依赖包模型
|
||||
type Dependency struct {
|
||||
ID int `json:"id" gorm:"primaryKey"`
|
||||
Name string `json:"name" gorm:"size:100;not null"`
|
||||
Version string `json:"version" gorm:"size:50"`
|
||||
Type string `json:"type" gorm:"size:10;not null"` // py 或 node
|
||||
Remark string `json:"remark" gorm:"size:255"`
|
||||
Log string `json:"log" gorm:"type:text"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
ID int `json:"id" gorm:"primaryKey"`
|
||||
Name string `json:"name" gorm:"size:100;not null"`
|
||||
Version string `json:"version" gorm:"size:50"`
|
||||
Language string `json:"language" gorm:"size:100;index"` // 关联语言 (node, python...)
|
||||
LangVersion string `json:"lang_version" gorm:"size:100;index"` // 关联语言版本
|
||||
Remark string `json:"remark" gorm:"size:255"`
|
||||
Log string `json:"log" gorm:"type:text"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
}
|
||||
|
||||
func (Dependency) TableName() string {
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"github.com/engigu/baihu-panel/internal/constant"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type Language struct {
|
||||
ID uint `json:"id" gorm:"primaryKey"`
|
||||
Plugin string `json:"plugin" gorm:"size:100;not null;index"`
|
||||
Version string `json:"version" gorm:"size:100;not null;index"`
|
||||
InstallPath string `json:"install_path" gorm:"size:255"`
|
||||
Source string `json:"source" gorm:"size:255"`
|
||||
InstalledAt *LocalTime `json:"installed_at"`
|
||||
CreatedAt LocalTime `json:"created_at"`
|
||||
UpdatedAt LocalTime `json:"updated_at"`
|
||||
DeletedAt gorm.DeletedAt `json:"-" gorm:"index"`
|
||||
}
|
||||
|
||||
func (Language) TableName() string {
|
||||
return constant.TablePrefix + "languages"
|
||||
}
|
||||
@@ -44,6 +44,8 @@ type Task struct {
|
||||
WorkDir string `json:"work_dir" gorm:"size:255;default:''"` // 工作目录,为空则使用 scripts 目录
|
||||
CleanConfig string `json:"clean_config" gorm:"size:255;default:''"` // 清理配置 JSON
|
||||
Envs string `json:"envs" gorm:"size:255;default:''"` // 环境变量ID列表,逗号分隔
|
||||
Language string `json:"language" gorm:"size:50;default:''"` // 针对本地任务的语言名称 (mise)
|
||||
LangVersion string `json:"lang_version" gorm:"size:50;default:''"` // 针对本地任务的语言版本 (mise)
|
||||
AgentID *uint `json:"agent_id" gorm:"index"` // Agent ID,为空表示本地执行
|
||||
Enabled bool `json:"enabled" gorm:"default:true"`
|
||||
RunningGo string `json:"running_go" gorm:"type:text"` // 正在运行的 go routine id 数组 (JSON)
|
||||
@@ -82,6 +84,22 @@ func (t *Task) GetEnvs() string {
|
||||
return t.Envs
|
||||
}
|
||||
|
||||
func (t *Task) GetLanguage() string {
|
||||
return t.Language
|
||||
}
|
||||
|
||||
func (t *Task) GetLangVersion() string {
|
||||
return t.LangVersion
|
||||
}
|
||||
|
||||
func (t *Task) GetUseMise() bool {
|
||||
return t.AgentID == nil || *t.AgentID == 0
|
||||
}
|
||||
|
||||
func (t *Task) UseMise() bool {
|
||||
return t.GetUseMise()
|
||||
}
|
||||
|
||||
func (t *Task) GetSchedule() string {
|
||||
return t.Schedule
|
||||
}
|
||||
|
||||
@@ -8,14 +8,15 @@ import (
|
||||
|
||||
// DependencyVO 依赖包视图对象
|
||||
type DependencyVO struct {
|
||||
ID int `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Version string `json:"version"`
|
||||
Type string `json:"type"`
|
||||
Remark string `json:"remark"`
|
||||
Log string `json:"log,omitempty"` // 仅在需要时返回
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
ID int `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Version string `json:"version"`
|
||||
Language string `json:"language"`
|
||||
LangVersion string `json:"lang_version"`
|
||||
Remark string `json:"remark"`
|
||||
Log string `json:"log,omitempty"` // 仅在需要时返回
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
}
|
||||
|
||||
// ToDependencyVO 将 Dependency 模型转换为 DependencyVO
|
||||
@@ -24,14 +25,15 @@ func ToDependencyVO(dep *models.Dependency) *DependencyVO {
|
||||
return nil
|
||||
}
|
||||
return &DependencyVO{
|
||||
ID: dep.ID,
|
||||
Name: dep.Name,
|
||||
Version: dep.Version,
|
||||
Type: dep.Type,
|
||||
Remark: dep.Remark,
|
||||
Log: dep.Log,
|
||||
CreatedAt: dep.CreatedAt,
|
||||
UpdatedAt: dep.UpdatedAt,
|
||||
ID: dep.ID,
|
||||
Name: dep.Name,
|
||||
Version: dep.Version,
|
||||
Language: dep.Language,
|
||||
LangVersion: dep.LangVersion,
|
||||
Remark: dep.Remark,
|
||||
Log: dep.Log,
|
||||
CreatedAt: dep.CreatedAt,
|
||||
UpdatedAt: dep.UpdatedAt,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,8 @@ type TaskVO struct {
|
||||
WorkDir string `json:"work_dir"`
|
||||
CleanConfig string `json:"clean_config"`
|
||||
Envs string `json:"envs"`
|
||||
Language string `json:"language"`
|
||||
LangVersion string `json:"lang_version"`
|
||||
AgentID *uint `json:"agent_id"`
|
||||
Enabled bool `json:"enabled"`
|
||||
LastRun *models.LocalTime `json:"last_run"`
|
||||
@@ -41,6 +43,8 @@ func ToTaskVO(task *models.Task) *TaskVO {
|
||||
WorkDir: task.WorkDir,
|
||||
CleanConfig: task.CleanConfig,
|
||||
Envs: task.Envs,
|
||||
Language: task.Language,
|
||||
LangVersion: task.LangVersion,
|
||||
AgentID: task.AgentID,
|
||||
Enabled: task.Enabled,
|
||||
LastRun: task.LastRun,
|
||||
|
||||
Reference in New Issue
Block a user