GNU bug report logs - #64471
[PATCH 0/2] File database update services

Previous Next

Package: guix-patches;

Reported by: Ludovic Courtès <ludo <at> gnu.org>

Date: Wed, 5 Jul 2023 10:01:02 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Ludovic Courtès <ludo <at> gnu.org>
To: Bruno Victal <mirai <at> makinata.eu>
Cc: 64471 <at> debbugs.gnu.org
Subject: [bug#64471] [PATCH 0/2] File database update services
Date: Mon, 17 Jul 2023 22:22:14 +0200
Hello,

Bruno Victal <mirai <at> makinata.eu> skribis:

> On 2023-07-05 11:16, Ludovic Courtès wrote:
>> +(define-record-type* <file-database-configuration>
>> +  file-database-configuration make-file-database-configuration
>> +  file-database-configuration?
>> +  (package              file-database-configuration-package
>> +                        (default
>> +                          (let-system (system target)
>> +                            ;; Unless we're cross-compiling, avoid pulling a
>> +                            ;; second copy of findutils.
>> +                            (if target
>> +                                findutils
>> +                                (canonical-package findutils)))))
>> +  (schedule             file-database-configuration-schedule
>> +                        (default %default-file-database-update-schedule))
>> +  (excluded-directories file-database-configuration-excluded-directories
>> +                        (default %default-file-database-excluded-directories)))
>
> How about using define-configuration instead to have the documentation neatly
> in sync with the fields?

Hmm, good point, I’ll take a look.

>> +(define (file-database-mcron-jobs configuration)
>> +  (match-record configuration <file-database-configuration>
>> +    (package schedule excluded-directories)
>> +    (let ((updatedb (program-file
>> +                     "updatedb"
>> +                     #~(execl #$(file-append package "/bin/updatedb")
>> +                              "updatedb"
>> +                              #$(string-append "--prunepaths="
>> +                                               (string-join
>> +                                                excluded-directories))))))
>> +      (list #~(job #$schedule #$updatedb)))))
>
> I'm afraid #$schedule might be insufficient if this is a _mcron_ time-spec.
> There's an elaborate dance done by fstrim-service-type to handle the more exotic
> mcron time expressions, perhaps you can reuse it here?

I’m not sure what fstrim-service-type is trying to achieve with this:

    #~(job
       ;; Note: The “if” below is to ensure that
       ;; lists are ungexp'd correctly since @var{schedule}
       ;; can be either a procedure, a string or a list.
       #$(if (list? schedule)
             #~'(#$@schedule)
             schedule)
       …")

If we simply have:

  #~(job #$schedule …)

then ‘schedule’ can be anything you might expect, like:

  • "0 * * * *"         ;string

  • #~(next-hour …)     ;gexp

  • #~(lambda (x) …)    ;another gexp

What’s the problem? :-)

Ludo’.




This bug report was last modified 1 year and 347 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.