#!/usr/bin/env guile !# (define-module (reading-heap)) (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"))) (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))) (define-public media (filetree->media-list "/home/christopher/src/reading-heap/tests")) (define-public priorities (map media-priority media)) (define-public heap (fold heap-insert 'E priorities media)) ;; (rh-receive heap) (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) (rh-receive heap)))) (main (command-line))