mirror of
https://github.com/acepanel/panel.git
synced 2026-02-04 07:57:21 +08:00
feat: 支持更多项目类型
This commit is contained in:
@@ -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//'")
|
||||
|
||||
@@ -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,
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user