ci: Detect shell prompt with higher specificity
The current pattern '#' triggers on the openSUSE kernel version that is printed early during boot when no actual prompt is ready > [ 0.000000] Linux version 5.12.10-1-default (geeko@buildhost) (gcc (SUSE Linux) 11.1.1 20210510 [revision 23855a176609fe8dda6abaf2b21846b4517966eb], GNU ld (GNU Binutils; openSUSE Tumbleweed) 2.36.1.20210326-4) #1 SMP Fri Jun 11 05:05:06 UTC 2021 (b92eaf7) Instead wait for pattern that: a) should have fewer false positives, b) still be with working on distro shells: openSUSE (red color) ^[[1m^[[31mimage:~ #^[[m^O arch [root@image ~]# debian root@image:~# ubuntu root@image:~# fedora [root@image ~]#
This commit is contained in:
@@ -2,13 +2,15 @@
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
|
||||
import pexpect
|
||||
import re
|
||||
import sys
|
||||
|
||||
|
||||
def run() -> None:
|
||||
p = pexpect.spawnu(" ".join(sys.argv[1:]), logfile=sys.stdout, timeout=300)
|
||||
|
||||
p.expect("#")
|
||||
# distro-independent root prompt
|
||||
p.expect(re.compile("~[^#]{0,3}#"))
|
||||
p.sendline("systemctl poweroff")
|
||||
|
||||
p.expect(pexpect.EOF)
|
||||
|
||||
Reference in New Issue
Block a user