Skip to content

Instantly share code, notes, and snippets.

@artyom-poptsov
Last active August 29, 2015 14:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save artyom-poptsov/62d9c0135a987d47eae8 to your computer and use it in GitHub Desktop.
Save artyom-poptsov/62d9c0135a987d47eae8 to your computer and use it in GitHub Desktop.
guile-ssh-dist-map
#!/usr/bin/guile \
-e main
!#
;; See <https://github.com/artyom-poptsov/guile-ssh/tree/wip-distributed-forms>
(use-modules (ssh session)
(ssh auth)
(ssh dist))
(define (connect*! sessions)
(for-each (lambda (s) (connect! s))
sessions))
(define (userauth-agent*! sessions)
(for-each (lambda (s) (userauth-agent! s))
sessions))
(define (make-nodes sessions)
(map (lambda (s) (make-node s 37147))
sessions))
(define (main args)
(let ((s1 (make-session #:user "avp"
#:host "host0.example.org"
#:port 22
#:log-verbosity 'nolog))
(s2 (make-session #:user "avp"
#:host "host1.example.org"
#:port 22
#:log-verbosity 'nolog))
(s3 (make-session #:user "avp"
#:host "host2.example.org"
#:port 22
#:log-verbosity 'nolog)))
(connect*! (list s1 s2 s3))
(userauth-agent*! (list s1 s2 s3))
(display (dist-map (make-nodes (list s1 s2 s3))
(lambda (n) (* n n n n n n n n))
(make-list 50 1)))
(newline)
(exit 0)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment