#!@GUILE@ \ --no-auto-compile -e main -s !# (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 "serve 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 @COPYRIGHT@) (version @HVERSION@) (license @LICENSE@) (author @AUTHOR@))) (define (main cmd-line) (let ((options (getopt-config-auto cmd-line config))) (when (option-ref options 'write) (options-write options)) (when (or (option-ref options 'serve) (not (option-ref options 'write))) (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/"))))))