From 8c6e2d8351ab1e4485ed41b121a0f02ef08eb415 Mon Sep 17 00:00:00 2001 From: Tim Vaughan Date: Fri, 29 May 2020 18:07:06 +0200 Subject: [PATCH] Added garden directory. --- directory.gmi | 37 ++++++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) mode change 100644 => 100755 directory.gmi diff --git a/directory.gmi b/directory.gmi old mode 100644 new mode 100755 index 56a8259..9c84035 --- a/directory.gmi +++ b/directory.gmi @@ -1,5 +1,36 @@ -# Garden directory +# Garden Directory -The μBotany garden directory isn't yet implemented. +``` +,(eval (begin + (import (chicken io) + (chicken file) + (chicken string) + (chicken pathname) + (chicken time posix) + srfi-1 srfi-13) + (for-each eval (with-input-from-file "garden.scm" read-list)) + (define (pad-string o max-len) + (let* ((s (->string o)) + (n (string-length s))) + (if (> n max-len) + (string-take s max-len) + (conc s (make-string (- max-len n) #\space))))) + (define (print-rule n) + (print (make-string n #\-))) + (let* ((headers '("Owner" "Created" "Plant Stage")) + (colwidths '(20 30 15)) + (total-width (apply + colwidths))) + (apply print (map pad-string headers colwidths)) + (print-rule total-width) + (for-each + (lambda (garden-file) + (let* ((g (with-input-from-file garden-file read)) + (fields (list (garden-prop 'user g) + (seconds->string (garden-prop 'created g)) + (garden-stage g)))) + (apply print (map pad-string fields colwidths)))) + (glob "accounts/*")) + (print-rule total-width)))) +``` -=> ./ Return to start page \ No newline at end of file +=> ./ Return to the μBotany start page -- 2.20.1