home
/
code
/
tt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Get version from info.rkt
[tt.git]
/
tt.rkt
diff --git
a/tt.rkt
b/tt.rkt
index
b11364f
..
c63f35d
100644
(file)
--- a/
tt.rkt
+++ b/
tt.rkt
@@
-34,6
+34,9
@@
; - d | download
; - u | upload
; - calls user-configured command to upload user's own feed file to their server
; - d | download
; - u | upload
; - calls user-configured command to upload user's own feed file to their server
+;
+; Looks like a better CLI parser than "racket/cmdline":
+; https://docs.racket-lang.org/natural-cli/
#lang racket
#lang racket
@@
-43,10
+46,14
@@
(require http-client)
(require rfc3339-old)
(require http-client)
(require rfc3339-old)
+(module+ test
+ (require rackunit))
+
(struct msg (ts_epoch ts_rfc3339 nick uri text))
(struct feed (nick uri))
(define (concurrent-filter-map num_workers f xs)
(struct msg (ts_epoch ts_rfc3339 nick uri text))
(struct feed (nick uri))
(define (concurrent-filter-map num_workers f xs)
+ ; TODO preserve order of elements OR communicate that reorder is expected
; TODO switch from mailboxes to channels
(define (make-worker id f)
(define parent (current-thread))
; TODO switch from mailboxes to channels
(define (make-worker id f)
(define parent (current-thread))
@@
-80,6
+87,15
@@
(for-each thread-wait threads)
results)
(for-each thread-wait threads)
results)
+(module+ test
+ (define n-workers 10)
+ (define given (list
+ (λ (x) (if (even? x) x #f))
+ (range 11)))
+ (check-equal?
+ (sort (apply concurrent-filter-map (cons n-workers given)) <)
+ (sort (apply filter-map given ) <)))
+
(define (msg-print out-format odd msg)
(printf
(match out-format
(define (msg-print out-format odd msg)
(printf
(match out-format
@@
-200,11
+216,9
@@
"https://raw.githubusercontent.com/mdom/we-are-twtxt/master/we-are-twtxt.txt")
(str->feeds (uri-fetch uri)))
"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*
(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)
[user-feed-file (expand-user-path "~/twtxt-me.txt")]
[user
(if (file-exists? user-feed-file)
@@
-215,6
+229,7
@@
(format "~a/~a (~a)" prog-name prog-version user)))
(module+ main
(format "~a/~a (~a)" prog-name prog-version user)))
(module+ main
+ (require setup/getinfo)
(define (setup-logging)
(define logger (make-logger #f #f 'debug #f))
(define log-chan (make-log-receiver logger 'debug))
(define (setup-logging)
(define logger (make-logger #f #f 'debug #f))
(define log-chan (make-log-receiver logger 'debug))
@@
-231,12
+246,15
@@
(setup-logging)
(current-http-response-auto #f)
(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
(date-display-format 'rfc2822)
(define args (current-command-line-arguments))
(define feeds
- (if (
vector-empty? args
)
+ (if (
= 0 (vector-length args)
)
(we-are-twtxt)
(file->feeds (vector-ref args 0))))
(define out-format 'multi-line)
(we-are-twtxt)
(file->feeds (vector-ref args 0))))
(define out-format 'multi-line)
This page took
0.026533 seconds
and
4
git commands to generate.