in backend/analyzer/installedIDEs/InstallationsFinder.go [83:109]
func GetIdeInstallations() (ides []IDE) {
runningIDEs := getRunningIdes()
log.Printf("Scanning system for IDE installations")
var installedIdes []string
installedIdes, _ = findInstalledIdePackages()
for _, idePackage := range installedIdes {
info, _ := getIdeInfoByPackage(idePackage)
binary, _ := getIdeBinaryByPackage(idePackage)
info.LogsDirectory = getIdeLogsDir(binary)
isRunning := checkIfInstallationRunning(runningIDEs, info)
if info.LogsDirectory != "" {
ides = append(ides, IDE{
Binary: binary,
Package: idePackage,
Running: isRunning,
Info: info,
})
//log.Printf("[runnning: %v] [%v] %v %v (%v-%v) - %v \n", isRunning, i, info.Name, info.Version, info.ProductCode, info.BuildNumber, beautifyPackageName(idePackage))
}
}
//sort them by running state. Running ones first
sort.Slice(ides, func(i int, j int) bool {
return ides[i].Running
})
return ides
}