Restrict scope of temp variables
[tt.git] / tt.rkt
diff --git a/tt.rkt b/tt.rkt
index 409ef51..be88095 100644 (file)
--- a/tt.rkt
+++ b/tt.rkt
     "https://raw.githubusercontent.com/mdom/we-are-twtxt/master/we-are-twtxt.txt")
   (str->feeds (uri-fetch uri)))
 
-(define user-agent
+(define (user-agent prog-name prog-version)
   (let*
-    ([prog-name      "tt"]
-     [prog-version   "0.3.4"]
-     [prog-uri       "https://github.com/xandkar/tt"]
+    ([prog-uri       "https://github.com/xandkar/tt"]
      [user-feed-file (expand-user-path "~/twtxt-me.txt")]
      [user
        (if (file-exists? user-feed-file)
     (format "~a/~a (~a)" prog-name prog-version user)))
 
 (module+ main
-  (define (setup-logging)
-    (define logger (make-logger #f #f 'debug #f))
-    (define log-chan (make-log-receiver logger 'debug))
+  (require setup/getinfo)
+
+  (let* ([logger       (make-logger #f #f 'debug #f)]
+         [log-receiver (make-log-receiver logger 'debug)])
     (void (thread (λ ()
                      [date-display-format 'iso-8601]
                      [let loop ()
-                       (define data  (sync log-chan))
+                       (define data  (sync log-receiver))
                        (define level (vector-ref data 0))
                        (define msg   (vector-ref data 1))
                        (define ts    (date->string (current-date) #t))
                        (eprintf "~a [~a] ~a~n" ts level msg)
                        (loop)])))
     (current-logger logger))
-
-  (setup-logging)
   (current-http-response-auto #f)
-  (current-http-user-agent user-agent)
+  (let* ([prog-name    "tt"]
+         [prog-version ((get-info (list prog-name)) 'version)]
+         [user-agent   (user-agent prog-name prog-version)])
+    (current-http-user-agent user-agent))
   (date-display-format 'rfc2822)
-
-  (define args (current-command-line-arguments))
-  (define feeds
-    (if (vector-empty? args)
-      (we-are-twtxt)
-      (file->feeds (vector-ref args 0))))
-  (define out-format 'multi-line)
-  (define num_workers 15) ; 15 was fastest out of the tried 1, 5, 10, 15 and 20.
-  (timeline-print out-format (timeline num_workers feeds)))
+  (let ([feeds
+          (let ([args (current-command-line-arguments)])
+            (if (= 0 (vector-length args))
+              (we-are-twtxt)
+              (file->feeds (vector-ref args 0))))]
+        [out-format
+          'multi-line]
+        [num_workers
+          15]) ; 15 was fastest out of the tried 1, 5, 10, 15 and 20.
+    (timeline-print out-format (timeline num_workers feeds))))
This page took 0.024475 seconds and 4 git commands to generate.