summaryrefslogtreecommitdiff
path: root/main.scm
diff options
context:
space:
mode:
Diffstat (limited to 'main.scm')
-rwxr-xr-xmain.scm57
1 files changed, 46 insertions, 11 deletions
diff --git a/main.scm b/main.scm
index 6a842ae..d38e7ea 100755
--- a/main.scm
+++ b/main.scm
@@ -21,20 +21,19 @@
((calp util) :select (path-append))
(feed-handler)
- )
-
+ ((xdg basedir) :prefix xdg-)
+ )
-(define option-spec
- `((output (single-char #\o)
- (required? #f)
- (value #t))))
-(define ((handle-feed output-directory) feed)
+(define ((handle-feed output-directory quiet?) feed)
(define response
- ;; TODO follow redirects
- (http-get (feed-url feed)
- #:streaming? #t))
+ (begin
+ (when (not quiet?)
+ (format (current-error-port) "Fetching ~a~%" (feed-url feed)))
+ ;; TODO follow redirects
+ (http-get (feed-url feed)
+ #:streaming? #t)))
(unless (= 200 (response-code response))
(format (current-error-port) "HTTP error ~a"
@@ -61,9 +60,45 @@
;; (for iPad) expects all rss elements to be un-namespaced.
(move-to-namespace output '((rss . #f)))))))))
+
+(define option-spec
+ `((output (single-char #\o)
+ (required? #f)
+ (value #t))
+ (help (single-char #\h))
+ (config-dir (required? #f)
+ (value #t))
+ (quiet (value #f))))
+
+
+(define (display-help)
+ (format #t "Usage: ~a [--config-dir conf-dir] [--output /tmp/output]~%"
+ (car (command-line))))
+
+(define (display-no-config config-dir)
+ (format #t "Configuration directory [~a] doesn't exist, or is unreadable~%"
+ config-dir))
+
(define (main args)
(define opts (getopt-long args option-spec))
(define output-directory (option-ref opts 'output "."))
- (for-each (handle-feed output-directory) (@ (config) feeds)))
+ (define config-dir
+ (option-ref opts 'config-dir
+ (path-append (xdg-config-home)
+ "rss-filter")))
+
+ (define quiet? (option-ref opts 'quiet #f))
+
+ (when (option-ref opts 'help #f)
+ (display-help)
+ (exit 0))
+
+ (unless (file-exists? config-dir)
+ (display-no-config config-dir)
+ (exit 1))
+
+ (add-to-load-path config-dir)
+
+ (for-each (handle-feed output-directory quiet?) (@ (config) feeds)))