From 0b5ff3eab5ced15e22802a4c3dee48db7937df4a Mon Sep 17 00:00:00 2001 From: xenia Date: Thu, 1 Dec 2022 01:02:24 -0500 Subject: [PATCH] bikeshed watch script --- scripts/watch | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/scripts/watch b/scripts/watch index 0078a1b..af2c87b 100755 --- a/scripts/watch +++ b/scripts/watch @@ -12,24 +12,26 @@ (define (watch-forever file) (sleep 0.2) - (define chg-evt (filesystem-change-evt file (lambda () - (displayln "error watching file...") - (sleep 1) (watch-forever file)))) - (define runner (thread (lambda () (reinvoke file)))) + (match (filesystem-change-evt file (λ () #f)) + [#f + (displayln "error watching file...") + (sleep 1)] + [chg-evt + (define runner (thread (lambda () (reinvoke file)))) - (define (handle-break _) - (cond - [(sync/timeout 0 runner) - (displayln "exiting") - (exit)] - [else - (displayln "killing module") - (kill-thread runner) - (filesystem-change-evt-cancel chg-evt)])) + (define (handle-break _) + (cond + [(sync/timeout 0 runner) + (displayln "exiting") + (exit)] + [else + (displayln "killing module") + (kill-thread runner) + (filesystem-change-evt-cancel chg-evt)])) - (with-handlers ([exn:break? handle-break]) - (sync chg-evt) - (kill-thread runner)) + (with-handlers ([exn:break? handle-break]) + (sync chg-evt) + (kill-thread runner))]) (watch-forever file)) (define-runtime-path aoc "aoc.rkt")