mirror of
https://github.com/TermoraDev/termora.git
synced 2026-01-15 18:02:58 +08:00
fix: wsl reg
This commit is contained in:
@@ -5,9 +5,11 @@ import com.sun.jna.platform.win32.Advapi32Util
|
||||
import com.sun.jna.platform.win32.WinReg
|
||||
import org.apache.commons.io.FileUtils
|
||||
import org.apache.commons.lang3.StringUtils
|
||||
import org.slf4j.LoggerFactory
|
||||
|
||||
|
||||
object WSLSupport {
|
||||
private val log = LoggerFactory.getLogger(javaClass)
|
||||
val isSupported by lazy { checkSupported() }
|
||||
|
||||
private fun checkSupported(): Boolean {
|
||||
@@ -26,20 +28,29 @@ object WSLSupport {
|
||||
|
||||
for (guid in guids) {
|
||||
val key = baseKeyPath + "\\" + guid
|
||||
val distroName = Advapi32Util.registryGetStringValue(WinReg.HKEY_CURRENT_USER, key, "DistributionName")
|
||||
val basePath = Advapi32Util.registryGetStringValue(WinReg.HKEY_CURRENT_USER, key, "BasePath")
|
||||
val flavor = Advapi32Util.registryGetStringValue(WinReg.HKEY_CURRENT_USER, key, "Flavor")
|
||||
if (StringUtils.isAnyBlank(distroName, guid, basePath, flavor)) continue
|
||||
distributions.add(
|
||||
WSLDistribution(
|
||||
guid = guid,
|
||||
flavor = flavor,
|
||||
basePath = basePath,
|
||||
distributionName = distroName
|
||||
)
|
||||
)
|
||||
try {
|
||||
if (Advapi32Util.registryKeyExists(WinReg.HKEY_CURRENT_USER, key)) {
|
||||
val distroName =
|
||||
Advapi32Util.registryGetStringValue(WinReg.HKEY_CURRENT_USER, key, "DistributionName")
|
||||
val basePath = Advapi32Util.registryGetStringValue(WinReg.HKEY_CURRENT_USER, key, "BasePath")
|
||||
val flavor = Advapi32Util.registryGetStringValue(WinReg.HKEY_CURRENT_USER, key, "Flavor")
|
||||
if (StringUtils.isAnyBlank(distroName, guid, basePath, flavor)) continue
|
||||
distributions.add(
|
||||
WSLDistribution(
|
||||
guid = guid,
|
||||
flavor = flavor,
|
||||
basePath = basePath,
|
||||
distributionName = distroName
|
||||
)
|
||||
)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
if (log.isWarnEnabled) {
|
||||
log.warn(e.message, e)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return distributions
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user