diff options
Diffstat (limited to 'visualize-schema.scm')
-rwxr-xr-x | visualize-schema.scm | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/visualize-schema.scm b/visualize-schema.scm index 0e203bd..6850cb8 100755 --- a/visualize-schema.scm +++ b/visualize-schema.scm @@ -31,13 +31,19 @@ (define html-string (@@ (ccwl graphviz) html-string)) (define graph->dot (@@ (ccwl graphviz) graph->dot)) +(define %sparql-host + (make-parameter #f)) + +(define %sparql-port + (make-parameter #f)) + (define (sparql-query-records . args) ;; TODO: Use the JSON query results so that types can be converted ;; correctly. (query-results->list (apply sparql-query (append args - (list #:host "127.0.0.1" - #:port 8891))) + (list #:host (%sparql-host) + #:port (%sparql-port)))) #t)) (define (floor-log1024 x) @@ -272,10 +278,20 @@ PORT." #:edges (rdf-edges)) port)) -(define (main) - (call-with-output-file "sql.dot" - write-sql-visualization) - (call-with-output-file "rdf.dot" - write-rdf-visualization)) +(define main + (match-lambda* + ((_ connection-settings-file) + (let ((connection-settings (call-with-input-file connection-settings-file + read))) + (parameterize ((%sparql-host (assq-ref connection-settings 'sparql-host)) + (%sparql-port (assq-ref connection-settings 'sparql-port))) + (call-with-output-file "sql.dot" + write-sql-visualization) + (call-with-output-file "rdf.dot" + write-rdf-visualization)))) + ((arg0 _ ...) + (display (format "Usage: ~a CONNECTION-SETTINGS-FILE~%" arg0) + (current-error-port)) + (exit #f)))) -(main) +(apply main (command-line)) |