Add call to hostnamectl in detectOsImpl (#10048)

This commit is contained in:
Taylor Hoff 2018-12-20 02:45:43 -05:00 • committed by Andreas Rumpf
commit 68ec42cec7

View file

@ -133,7 +133,7 @@ const
LacksDevPackages* = {Distribution.Gentoo, Distribution.Slackware, LacksDevPackages* = {Distribution.Gentoo, Distribution.Slackware,
Distribution.ArchLinux} Distribution.ArchLinux}
var unameRes, releaseRes: string ## we cache the result of the 'uname -a' var unameRes, releaseRes, hostnamectlRes: string ## we cache the result of the 'uname -a'
## execution for faster platform detections. ## execution for faster platform detections.
template unameRelease(cmd, cache): untyped = template unameRelease(cmd, cache): untyped =
@ -143,6 +143,7 @@ template unameRelease(cmd, cache): untyped =
template uname(): untyped = unameRelease("uname -a", unameRes) template uname(): untyped = unameRelease("uname -a", unameRes)
template release(): untyped = unameRelease("lsb_release -a", releaseRes) template release(): untyped = unameRelease("lsb_release -a", releaseRes)
template hostnamectl(): untyped = unameRelease("hostnamectl", hostnamectlRes)
proc detectOsImpl(d: Distribution): bool = proc detectOsImpl(d: Distribution): bool =
case d case d
@ -172,7 +173,7 @@ proc detectOsImpl(d: Distribution): bool =
result = defined(haiku) result = defined(haiku)
else: else:
let dd = toLowerAscii($d) let dd = toLowerAscii($d)
result = dd in toLowerAscii(uname()) or dd in toLowerAscii(release()) result = dd in toLowerAscii(uname()) or dd in toLowerAscii(release()) or dd in toLowerAscii(hostnamectl())
template detectOs*(d: untyped): bool = template detectOs*(d: untyped): bool =
## Distro/OS detection. For convenience the ## Distro/OS detection. For convenience the