From c0f7f5fb827b8dd9f1047d69b414c3da2ced52d9 Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Sun, 22 Feb 2015 16:55:13 -0800 Subject: [PATCH] improve handling of relative directories as input to `raco pollen render` --- command.rkt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/command.rkt b/command.rkt index 5501160..9e82e3a 100644 --- a/command.rkt +++ b/command.rkt @@ -10,8 +10,9 @@ help show this message start [dir] [port] starts project server in dir (default is current dir) (default port is ~a) -render [dir] render project in dir (default is current dir) -render path render file +render [dir] [dest] render project in dir (default is current dir) + to dest (default is desktop) +render filename render filename only (can be source or output name) clone copy project to desktop without source files" ,(world:current-server-port)))) (define (handle-render dir-or-path rest-args) @@ -61,15 +62,15 @@ clone copy project to desktop without source files" ,(world:curr (and (>= (length xs) (length prefix)) (andmap equal? prefix (take xs (length prefix))))) ((explode-path possible-subdir) . has-prefix? . (explode-path possible-superdir))) - (define source-dir ,directory) + (define source-dir (simplify-path ,directory)) (when (not (directory-exists? source-dir)) (error 'clone (format "source directory ~a does not exist" source-dir))) - (define target-dir ,target-path) + (define target-dir (simplify-path ,target-path)) (when (source-dir . contains-directory? . target-dir) (error 'clone "aborted because target directory for cloning (~a) can't be inside source directory (~a)" target-dir source-dir)) (displayln "Cloning ...") (when (directory-exists? target-dir) (delete-directory/files target-dir)) (copy-directory/files source-dir target-dir) (for-each delete-it (find-files pollen-related-file? target-dir)) - (displayln (format "Completed to ~a" ,target-path)))) + (displayln (format "Completed to ~a" target-dir)))) (define (handle-else command) `(if (regexp-match #rx"(shit|fuck)" ,command)