From 29608ecbaa7d51e0146b59b349125884d93158ef Mon Sep 17 00:00:00 2001 From: HAYAMA_Kaoru Date: Wed, 4 Dec 2024 19:16:03 +0900 Subject: [PATCH] example.lsp and README: add error cases - "Could not resolve hostname" - error catch when ssh is not found - rename variables - password error --- README.md | 37 ++++++++++++++++++++----------------- example.lsp | 37 ++++++++++++++++++++----------------- 2 files changed, 40 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index 5cf86a5..c92593a 100644 --- a/README.md +++ b/README.md @@ -15,36 +15,39 @@ Lispect (block main (if (< (length args) 2) (progn - (format (error-output) "Usage: ~A ~A HOSTNAME PASSWORD~%" $EXECUTABLE_NAME $PROGRAM_NAME) - (return-from main nil) - ) - ) - (defglobal host (car args)) + (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)) - (spawn "ssh" host) + (with-handler + (lambda (c) + (format (error-output) "ssh is not found~%") + (return-from main nil)) + (spawn "ssh" account)) + (expect* ("[fingerprint])?" (sendln "yes") (expect "password: ") - (sendln password) - ) + (sendln password)) ("password: " - (sendln password) - ) - ("Connection refused" - (return-from main nil) - ) + (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) ) - ) - (expect "$ ") + ("$ ")) (sendln "echo YOU CAN CALL SOME COMMAND HERE") (expect "$ ") - (sendln "exit") - ) + (sendln "exit")) ``` Install diff --git a/example.lsp b/example.lsp index 2fe5270..def1b25 100644 --- a/example.lsp +++ b/example.lsp @@ -1,33 +1,36 @@ (block main (if (< (length args) 2) (progn - (format (error-output) "Usage: ~A ~A HOSTNAME PASSWORD~%" $EXECUTABLE_NAME $PROGRAM_NAME) - (return-from main nil) - ) - ) - (defglobal host (car args)) + (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)) - (spawn "ssh" host) + (with-handler + (lambda (c) + (format (error-output) "ssh is not found~%") + (return-from main nil)) + (spawn "ssh" account)) + (expect* ("[fingerprint])?" (sendln "yes") (expect "password: ") - (sendln password) - ) + (sendln password)) ("password: " - (sendln password) - ) - ("Connection refused" - (return-from main nil) - ) + (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) ) - ) - (expect "$ ") + ("$ ")) (sendln "echo YOU CAN CALL SOME COMMAND HERE") (expect "$ ") - (sendln "exit") - ) + (sendln "exit"))