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"))