35 lines
716 B
Nix
35 lines
716 B
Nix
{ nano, expect, runCommand, writeScriptBin, runtimeShell }:
|
|
|
|
let expect-script = writeScriptBin "expect-script" ''
|
|
#!${expect}/bin/expect -f
|
|
|
|
# Load nano
|
|
spawn nano file.txt
|
|
expect "GNU nano ${nano.version}"
|
|
|
|
# Add some text to the buffer
|
|
send "Hello world!"
|
|
expect "Hello world!"
|
|
|
|
# Send ctrl-x (exit)
|
|
send "\030"
|
|
expect "Save modified buffer?"
|
|
|
|
# Answer "yes"
|
|
send "y"
|
|
expect "File Name to Write"
|
|
|
|
# Send "return" to accept the file path.
|
|
send "\r"
|
|
sleep 1
|
|
exit
|
|
''; in
|
|
runCommand "nano-test-expect"
|
|
{
|
|
nativeBuildInputs = [ nano expect ];
|
|
passthru = { inherit expect-script; };
|
|
} ''
|
|
expect -f ${expect-script}/bin/expect-script
|
|
grep "Hello world!" file.txt
|
|
touch $out
|
|
''
|