summaryrefslogtreecommitdiff
path: root/scripts/rh-client.scm.in
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/rh-client.scm.in')
-rwxr-xr-xscripts/rh-client.scm.in123
1 files changed, 0 insertions, 123 deletions
diff --git a/scripts/rh-client.scm.in b/scripts/rh-client.scm.in
deleted file mode 100755
index 64dfde6..0000000
--- a/scripts/rh-client.scm.in
+++ /dev/null
@@ -1,123 +0,0 @@
-#!/usr/bin/env guile
-!#
-(use-modules (simple-zmq)
- (config)
- (config api)
- (config parser sexp)
- (config licenses)
- (json))
-
-(define config
- (configuration
- (name 'rh-client)
- (synopsis "client for reading-heap")
- (keywords
- (list
- (setting
- (name 'service-socket)
- (synopsis "socket for communication with the service")
- (default (string-append "ipc://" (or (getenv "XDG_RUNTIME_DIR")
- "/tmp")
- "/reading-heap.sock")))
- (switch
- (name 'write)
- (synopsis "write the default config")
- (default #f)
- (test boolean?)
- (character #f))
- (switch
- (name 'title)
- (synopsis "title of the new media")
- (default "Foundation Trilogy")
- (test string?)
- (character #t))
- (switch
- (name 'author)
- (synopsis "author of the new media")
- (default "Isaac Asimov")
- (test string?)
- (character #t))
- (switch
- (name 'location)
- (synopsis "location of the new media")
- (default "https://openlibrary.org/books/OL20930675M/The_foundation_trilogy")
- (test string?)
- (character #t))
- (switch
- (name 'priority)
- (synopsis "priority of the new media")
- (default "1")
- (test string?)
- (character #t))))
- (subcommands
- (list
- (configuration
- (name 'next)
- (synopsis "get the next media to consume")
- (wanted '((keywords . (service-socket)))))
- (configuration
- (name 'new)
- (synopsis "add new media to the heap")
- (wanted '((keywords . (service-socket title author location priority)))))
- (configuration
- (name 'consume)
- (synopsis "remove the next media from the heap")
- (wanted '((keywords . (service-socket)))))))
- (directory (list (in-home ".reading-heap/")
- (path (given
- (string-append (or (getenv "XDG_CONFIG_HOME")
- (string-append (getenv "HOME")
- "/.config"))
- "/reading-heap/"))
- (eager? #t))))
- (parser sexp-parser)))
-
-
-(define context (zmq-create-context))
-(define client-socket (zmq-create-socket context ZMQ_REQ))
-
-(define (client-setup sock)
- (zmq-connect client-socket sock))
-
-(define (rh-client-next)
- (zmq-send client-socket "next")
- (let ((msg (zmq-receive-bytevector client-socket 1500)))
- (display (bv->string msg))))
-
-(define (rh-client-new json)
- (zmq-send client-socket "new")
- (zmq-receive client-socket 1500)
- (zmq-send client-socket json)
- (display (zmq-receive client-socket 1500))
- (zmq-send client-socket "next")
- (display (zmq-receive client-socket 1500)))
-
-(define (rh-client-consumed)
- (zmq-send client-socket "consume")
- (display (zmq-receive client-socket 1500)))
-
-(define (json-from-args priority title author location)
- (scm->json-string `(("priority" . ,priority)
- ("title" . ,title)
- ("author" . ,author)
- ("location" . ,location))))
-
-(define (main cmd-line)
- (let ((options (getopt-config-auto cmd-line config)))
- (when (option-ref options 'write)
- (options-write options))
- (cond ((string=? (cadr (full-command options)) "next")
- (client-setup (option-ref options 'service-socket))
- (rh-client-next))
- ((string=? (cadr (full-command options)) "new")
- (client-setup (option-ref options 'service-socket))
- (rh-client-new (json-from-args (string->number (option-ref options 'priority))
- (option-ref options 'title)
- (option-ref options 'author)
- (option-ref options 'location))))
- ((string=? (cadr (full-command options)) "consume")
- (client-setup (option-ref options 'service-socket))
- (rh-client-consumed))
- (#t (emit-help options)))))
-
-(main (command-line))