[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3] base: Annotate output with job information.
From: |
Dale Mellor |
Subject: |
Re: [PATCH v3] base: Annotate output with job information. |
Date: |
Fri, 03 Sep 2021 21:01:22 +0100 |
User-agent: |
Evolution 3.38.3-1 |
On Tue, 2021-08-24 at 00:20 -0400, Maxim Cournoyer wrote:
> Before this change, it was difficult to discern which job
> emitted which
> output, as there was no information connecting the job to the
> output it
> produced. This change rectifies that by annotating each line
> output by
> cron/mcron with a prefix that contains a timestamp and the job
> name. It also
> reports about when the job runs and whether it completed
> successfully or
> failed.
This is great, but which version of Guile does it require? I'm
using the latest Debian 11 with its guile-3.0.5 and get the
following
In procedure dispatch-exception:
Syntax error:
mcron/base.scm:319:2: definition in expression context, where
definitions are not allowed, in form (define (log-data data) (let
((name (job-data:name data)) (pid (job-data:pid data)) (port
(job-data:port data)) (cont (job-data:continuation data)))
(define (read-line*) (call-with-prompt (quote continue) (lambda
() (parameterize ((current-read-waiter (lambda (_) (abort-to-
prompt (quote continue))))) (if cont (begin (set-job-data-
continuation! data #f) (cont)) (read-line port (quote split)))))
(lambda (partial-continuation) (cons (quote suspended) partial-
continuation)))) (define (format-line line) (let* ((cr-index
(string-index-right line #\return)) (line* (if cr-index (string-
drop line (#{1+}# cr-index)) line))) (format #t "~@?" (%log-
format) timestamp pid name line*))) (let loop ((line+delim (read-
line*))) (match line+delim (((quote suspended) . partial-
continuation) (set-job-data-continuation! data partial-
continuation)) ((line ? eof-object?) (close port) (unless (eof-
object? line) (format-line line))) ((line . _) (format-line line)
(loop (read-line*)))))))
Mcron should really be compilable on this system. (I would
further point out that configure.ac currently allows Guile 3.0,
2.2 and 2.0!)
Dale
ps. It would be useful also if you could provide patches against
commits on the master branch so that we can 'git am' them
directly.
pps. I'm totally in support of this excellent work getting merged
with mcron master.
- Re: [PATCH v3] base: Annotate output with job information.,
Dale Mellor <=