-
Notifications
You must be signed in to change notification settings - Fork 1
/
build-search-tree.rkt
41 lines (32 loc) · 1.06 KB
/
build-search-tree.rkt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#lang racket
(require racket/cmdline)
(require "corpus.rkt")
(define search-tree-path (make-parameter #f))
(define disk-cache-path (make-parameter #f))
(define dir-list
(command-line
#:once-each
[("-o") path
"Output file name"
(search-tree-path path)]
[("-d") cache-path
"Create a disk cache with file name"
(disk-cache-path cache-path)]
#:args dir-list
dir-list))
(unless (search-tree-path) (error "Must specify output path with -o"))
(printf "Creating corpus from contents of: ")
(for ([dir dir-list])
(printf "~a " dir))
(printf "~n")
(define st (build-corpus dir-list))
(printf "Finished building corpus~n")
(if (disk-cache-path)
(begin
(printf "Creating disk cache in ~a~n" (disk-cache-path))
(let ([dst (create-disk-cached-tree st (disk-cache-path))])
(printf "Saving corpus to disk as ~a~n" (search-tree-path))
(save-corpus dst (search-tree-path))))
(begin
(printf "Saving corpus to disk as ~a~n" (search-tree-path))
(save-corpus st (search-tree-path))))