aboutsummaryrefslogtreecommitdiff
path: root/scripts/rh-server.in
diff options
context:
space:
mode:
authorChristopher R. Nelson <christopher.nelson@languidnights.com>2023-06-19 15:31:49 -0400
committerChristopher R. Nelson <christopher.nelson@languidnights.com>2023-06-19 15:31:49 -0400
commit56405829f2f9f2adadb42135ffaec37725759b57 (patch)
treee198dfdfae069000cf9bc8819d5beef466b1bd94 /scripts/rh-server.in
parent33f3751e8228086c577e6d38c9b6bcbce9febfea (diff)
feat: more proper build infra
- scripts should be scripts/command-name.in - tests file shouldn't mismatch style from app
Diffstat (limited to 'scripts/rh-server.in')
-rwxr-xr-xscripts/rh-server.in72
1 files changed, 72 insertions, 0 deletions
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))