From 08474dd8ce9224799faa7ac8e4dee94874e852c4 Mon Sep 17 00:00:00 2001 From: HAYAMA_Kaoru Date: Sat, 30 Nov 2024 11:23:00 +0900 Subject: [PATCH] Add README --- README.md | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..31aae9f --- /dev/null +++ b/README.md @@ -0,0 +1,43 @@ +Lispect +======= + +- A text-terminal automation tool similar to [expect(1)](https://linux.die.net/man/1/expect) of UNIX and Linux +- It runs on Windows 10 and later, and Linux +- The script is written in the subset of ISLisp ([gmnlisp](https://github.com/hymkor/gmnlisp)) + +```example.lsp +(if (equal (getenv "OS") "Windows_NT") + (spawn "cmd.exe" "/k" "set PROMPT=$$$S") + (spawn "bash")) + +(defglobal ctrlc (format nil "~A" (convert 3 ))) +(block main + (while t + (expect* + ("xxx" + (send ctrlc) + (expect "$ ") + (sendln "exit") + (return-from main nil) + ) + (("yyy" "zzz") + (send ctrlc) + (expect "$ ") + (sendln "echo test") + ) + (10 ; timeout second + (send ctrlc) + (expect "$ ") + (sendln "exit") + (return-from main nil) + ) + ) + ) + ) +``` + +#### Technologies used + +- [Creating a Pseudoconsole session - Windows Console | Microsoft Learn](https://learn.microsoft.com/en-us/windows/console/creating-a-pseudoconsole-session) +- [aymanbagabas/go-pty: Cross platform Go Pty interface](https://github.com/aymanbagabas/go-pty) +- [hymkor/gmnlisp: gmnlisp - the subset of ISLisp](https://github.com/hymkor/gmnlisp)