diff options
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/rh-client.in (renamed from scripts/rh-client.scm.in) | 0 | ||||
| -rwxr-xr-x | scripts/rh-server.in | 72 | 
2 files changed, 72 insertions, 0 deletions
| diff --git a/scripts/rh-client.scm.in b/scripts/rh-client.in index 64dfde6..64dfde6 100755 --- a/scripts/rh-client.scm.in +++ b/scripts/rh-client.in diff --git a/scripts/rh-server.in b/scripts/rh-server.in new file mode 100755 index 0000000..9749ec2 --- /dev/null +++ b/scripts/rh-server.in @@ -0,0 +1,72 @@ +#!/usr/bin/env guile +!# +(use-modules (srfi srfi-1) +	     (config) +	     (config api) +	     (config licenses) +	     (config parser sexp) +	     (reading-heap heap) +	     (reading-heap media) +	     (reading-heap zmq)) + +(define config +  (configuration +   (name 'rh-server) +   (synopsis "client for reading-heap") +   (keywords +    (list +     (setting +      (name 'media-library) +      (synopsis "media library location") +      (default (string-append (or (getenv "XDG_DATA_HOME") +				  (string-append (getenv "HOME") +						 "/.local/share")) +			      "/media-library")) +      (character #f)) +     (setting +      (name 'service-socket) +      (synopsis "socket for communication with the service") +      (default (string-append "ipc://" (or (getenv "XDG_RUNTIME_DIR") +					   "/tmp") +			      "/reading-heap.sock")) +      (character #f)) +     (switch +      (name 'write) +      (synopsis "write the default config") +      (default #f) +      (test boolean?) +      (character #f)) +     (switch +      (name 'serve) +      (synopsis "server the media heap") +      (default #f) +      (test boolean?) +      (character #t)) +     )) +   (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) +   (copyright '(2023)) +   (version "0.1") +   (license agpl3+) +   (author "Christopher R. Nelson"))) + +(define (main cmd-line) +  (let ((options (getopt-config-auto cmd-line config))) +    (when (option-ref options 'write) +      (options-write options)) +    (when (option-ref options 'serve) +      (let* ((media (filetree->media-list (option-ref options 'media-library))) +	     (priorities (map media-priority media)) +	     (heap (fold heap-insert 'E priorities media))) +	(server-setup (option-ref options 'service-socket)) +	(rh-receive heap +		    (option-ref options 'media-library) +		    (string-append (option-ref options 'media-library) "/archive/")))))) + +(main (command-line)) | 
