2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 07:57:21 +08:00

feat: 支持更多项目类型

This commit is contained in:
2026-01-16 02:17:18 +08:00
parent 0cdf62af31
commit d2c4ab3bb4
4 changed files with 354 additions and 21 deletions

View File

@@ -122,8 +122,8 @@ func (r *environmentRepo) InstalledVersion(typ, slug string) string {
// go version go1.21.0 linux/amd64 -> 1.21.0
version, err = shell.Exec(filepath.Join(basePath, "bin", "go") + " version | awk '{print $3}' | sed 's/go//'")
case "java":
// openjdk version "17.0.8" 2023-07-18 LTS -> 17.0.8
version, err = shell.Exec(filepath.Join(basePath, "bin", "java") + " -version 2>&1 | head -n 1 | awk -F'\"' '{print $2}'")
// OpenJDK Runtime Environment Corretto-21.0.9.11.1 (build 21.0.9+11-LTS) -> 21.0.9.11.1
version, err = shell.Exec(filepath.Join(basePath, "bin", "java") + ` -version 2>&1 | sed -n 's/.*Corretto-\([0-9.]*\).*/\1/p' | head -n 1`)
case "nodejs":
// v20.10.0 -> 20.10.0
version, err = shell.Exec(filepath.Join(basePath, "bin", "node") + " -v | sed 's/v//'")

View File

@@ -225,14 +225,44 @@ func (s *HomeService) InstalledEnvironment(w http.ResponseWriter, r *http.Reques
mysqlInstalled, _ := s.appRepo.IsInstalled("slug IN ?", []string{"mysql", "mariadb", "percona"})
postgresqlInstalled, _ := s.appRepo.IsInstalled("slug = ?", "postgresql")
// Go 版本
var goData []types.LV
for _, slug := range s.environmentRepo.InstalledSlugs("go") {
ver := s.environmentRepo.InstalledVersion("go", slug)
goData = append(goData, types.LV{Value: slug, Label: fmt.Sprintf("Go %s", ver)})
}
// Java 版本
var javaData []types.LV
for _, slug := range s.environmentRepo.InstalledSlugs("java") {
ver := s.environmentRepo.InstalledVersion("java", slug)
javaData = append(javaData, types.LV{Value: slug, Label: fmt.Sprintf("Java %s", ver)})
}
// Node.js 版本
var nodejsData []types.LV
for _, slug := range s.environmentRepo.InstalledSlugs("nodejs") {
ver := s.environmentRepo.InstalledVersion("nodejs", slug)
nodejsData = append(nodejsData, types.LV{Value: slug, Label: fmt.Sprintf("Node.js %s", ver)})
}
// PHP 版本
var phpData []types.LVInt
var dbData []types.LV
dbData = append(dbData, types.LV{Value: "0", Label: s.t.Get("Not used")})
for _, slug := range s.environmentRepo.InstalledSlugs("php") {
ver := s.environmentRepo.InstalledVersion("php", slug)
phpData = append(phpData, types.LVInt{Value: cast.ToInt(slug), Label: fmt.Sprintf("PHP %s", ver)})
}
// Python 版本
var pythonData []types.LV
for _, slug := range s.environmentRepo.InstalledSlugs("python") {
ver := s.environmentRepo.InstalledVersion("python", slug)
pythonData = append(pythonData, types.LV{Value: slug, Label: fmt.Sprintf("Python %s", ver)})
}
// 数据库
var dbData []types.LV
dbData = append(dbData, types.LV{Value: "0", Label: s.t.Get("Not used")})
if mysqlInstalled {
dbData = append(dbData, types.LV{Value: "mysql", Label: "MySQL"})
}
@@ -243,7 +273,11 @@ func (s *HomeService) InstalledEnvironment(w http.ResponseWriter, r *http.Reques
webserver, _ := s.settingRepo.Get(biz.SettingKeyWebserver)
Success(w, chix.M{
"webserver": webserver,
"go": goData,
"java": javaData,
"nodejs": nodejsData,
"php": phpData,
"python": pythonData,
"db": dbData,
})
}