From 48ab76b65b62b610d8e92d3d2da7b6e34613e7aa Mon Sep 17 00:00:00 2001 From: HAYAMA_Kaoru Date: Thu, 5 Dec 2024 11:17:50 +0900 Subject: [PATCH] example.lsp: use `(wait PID)` --- example.lsp | 61 +++++++++++++++++++++++++++++------------------------ 1 file changed, 33 insertions(+), 28 deletions(-) diff --git a/example.lsp b/example.lsp index def1b25..b84293e 100644 --- a/example.lsp +++ b/example.lsp @@ -3,34 +3,39 @@ (progn (format (error-output) "Usage: ~A ~A USERNAME@DOMAIN PASSWORD~%" $EXECUTABLE_NAME $PROGRAM_NAME) (return-from main nil))) - (defglobal account (car args)) - (defglobal password (cadr args)) - (with-handler - (lambda (c) - (format (error-output) "ssh is not found~%") - (return-from main nil)) - (spawn "ssh" account)) + (let ((account (car args)) + (password (cadr args)) + (sshpid nil)) - (expect* - ("[fingerprint])?" - (sendln "yes") - (expect "password: ") - (sendln password)) - ("password: " - (sendln password)) - (("Connection refused" - "Could not resolve hostname") - (return-from main nil)) - (30 - (format (error-output) "TIME OUT~%") - (return-from main nil))) + (with-handler + (lambda (c) + (format (error-output) "ssh is not found~%") + (return-from main nil)) + (setq sshpid (spawn "ssh" account))) - (expect* - ("Permission denied" - (return-from main nil) - ) - ("$ ")) - (sendln "echo YOU CAN CALL SOME COMMAND HERE") - (expect "$ ") - (sendln "exit")) + (expect* + ("[fingerprint])?" + (sendln "yes") + (expect "password: ") + (sendln password)) + ("password: " + (sendln password)) + (("Connection refused" + "Could not resolve hostname") + (return-from main nil)) + (30 + (format (error-output) "TIME OUT~%") + (return-from main nil))) + + (expect* + ("Permission denied" + (return-from main nil) + ) + ("$ ")) + (sendln "echo YOU CAN CALL SOME COMMAND HERE") + (expect "$ ") + (sendln "exit") + (wait sshpid) + ) + )