@@ -19,9 +19,11 @@ async def check_is_linux(conn: SSHClientConnection) -> bool:
1919
2020
2121@lru_cache
22- async def _get_os_release (conn : SSHClientConnection ) -> Optional [Tuple [str , str , str ]]:
22+ async def _get_os_release (conn : SSHClientConnection ) -> Optional [Tuple [str ]]:
2323 "Get os release string on linuxes"
24- proc = await conn .run ("source /etc/os-release; echo $ID@@@$ID_LIKE@@@$VERSION_ID" )
24+ proc = await conn .run (
25+ "sh -c 'source /etc/os-release; echo $ID@@@$ID_LIKE@@@$VERSION_ID'"
26+ )
2527 if proc .returncode != 0 or not proc .stdout :
2628 return None
2729 return tuple (map (lambda x : x .strip (), str (proc .stdout ).split ("@@@" , maxsplit = 3 )))
@@ -30,7 +32,7 @@ async def _get_os_release(conn: SSHClientConnection) -> Optional[Tuple[str, str,
3032async def check_is_debian_like (conn : SSHClientConnection ) -> bool :
3133 "Check for any Debian-like"
3234 os_release = await _get_os_release (conn )
33- return "debian" in [ os_release [0 ], os_release [ 1 ] ] if os_release else False
35+ return "debian" in os_release [0 : 2 ] if os_release else False
3436
3537
3638async def check_is_debian (conn : SSHClientConnection ) -> bool :
@@ -42,7 +44,7 @@ async def check_is_debian(conn: SSHClientConnection) -> bool:
4244async def _check_debian_version (version : str , conn : SSHClientConnection ) -> bool :
4345 "Check for Debian version"
4446 os_release = await _get_os_release (conn )
45- return os_release [2 ] == version if os_release else False
47+ return len ( os_release ) >= 2 and os_release [2 ] == version if os_release else False
4648
4749
4850check_is_debian_10 = partial (_check_debian_version , "10" )
0 commit comments