Hi @joelmccracken I have just announced “asciinwriter” (Yet another tool to generate input - #3 by russoz) that serves exactly that purpose. I wanted to script the term demo of my project.
It consumes an input like:
SEND(git clone --quiet --depth 1 https://github.com/ansible-collections/community.general.git)
ENTER()
EXPECT($ )
SEND(cd community.general)
ENTER()
EXPECT($ )
SEND(ls)
ENTER()
EXPECT($ )
SEND(andebox test -R -- integration --docker default --python 3.13 pipx_info)
ENTER()
EXPECT($ )
In fact, since you mentioned expect
, this one is based on expect
(or more precisely pexpect
, the Python implementation of if).