summaryrefslogtreecommitdiff
path: root/scripts/rh-client.in
diff options
context:
space:
mode:
authorChristopher R. Nelson <christopher.nelson@languidnights.com>2024-01-17 21:05:37 -0500
committerChristopher R. Nelson <christopher.nelson@languidnights.com>2024-01-21 09:59:03 -0500
commita6721bdd6154e2bebd8ab07bf310c25629347a21 (patch)
tree2b0dad144829f726396b08f09a5eaba3c9b18615 /scripts/rh-client.in
parent2f84ed3f877d97d2327f526ccbe981a6fe3acade (diff)
Add shutdown command, and refactor server impl
zmq: refactor server to functions add shutdown function (end recursion) media: fix bug with missing directories rh-client: support shutdown function rh-server: update to use build variables
Diffstat (limited to 'scripts/rh-client.in')
-rwxr-xr-xscripts/rh-client.in28
1 files changed, 22 insertions, 6 deletions
diff --git a/scripts/rh-client.in b/scripts/rh-client.in
index 64dfde6..8c96acb 100755
--- a/scripts/rh-client.in
+++ b/scripts/rh-client.in
@@ -1,4 +1,5 @@
-#!/usr/bin/env guile
+#!@GUILE@ \
+--no-auto-compile -e main -s
!#
(use-modules (simple-zmq)
(config)
@@ -28,19 +29,19 @@
(switch
(name 'title)
(synopsis "title of the new media")
- (default "Foundation Trilogy")
+ (default "")
(test string?)
(character #t))
(switch
(name 'author)
(synopsis "author of the new media")
- (default "Isaac Asimov")
+ (default "")
(test string?)
(character #t))
(switch
(name 'location)
(synopsis "location of the new media")
- (default "https://openlibrary.org/books/OL20930675M/The_foundation_trilogy")
+ (default "")
(test string?)
(character #t))
(switch
@@ -62,6 +63,10 @@
(configuration
(name 'consume)
(synopsis "remove the next media from the heap")
+ (wanted '((keywords . (service-socket)))))
+ (configuration
+ (name 'shutdown)
+ (synopsis "shutdown the heap")
(wanted '((keywords . (service-socket)))))))
(directory (list (in-home ".reading-heap/")
(path (given
@@ -70,7 +75,11 @@
"/.config"))
"/reading-heap/"))
(eager? #t))))
- (parser sexp-parser)))
+ (parser sexp-parser)
+ (copyright @COPYRIGHT@)
+ (version @HVERSION@)
+ (license @LICENSE@)
+ (author @AUTHOR@)))
(define context (zmq-create-context))
@@ -78,7 +87,7 @@
(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)))
@@ -96,6 +105,10 @@
(zmq-send client-socket "consume")
(display (zmq-receive client-socket 1500)))
+(define (rh-client-shutdown)
+ (zmq-send client-socket "shutdown")
+ (display (zmq-receive client-socket 1500)))
+
(define (json-from-args priority title author location)
(scm->json-string `(("priority" . ,priority)
("title" . ,title)
@@ -118,6 +131,9 @@
((string=? (cadr (full-command options)) "consume")
(client-setup (option-ref options 'service-socket))
(rh-client-consumed))
+ ((string=? (cadr (full-command options)) "shutdown")
+ (client-setup (option-ref options 'service-socket))
+ (rh-client-shutdown))
(#t (emit-help options)))))
(main (command-line))