From: ludo@gnu.org (Ludovic Courtès)
To: Arun Isaac <arunisaac@systemreboot.net>
Cc: 28281@debbugs.gnu.org
Subject: [bug#28281] [PATCH] gnu: Add os-prober.
Date: Thu, 31 Aug 2017 15:25:48 +0200 [thread overview]
Message-ID: <87lglzrhr7.fsf@gnu.org> (raw)
In-Reply-To: <ed473f83.AEAAPIjTtawAAAAAAAAAAAOtUOAAAAACwQwAAAAAAAW9WABZpbtV@mailjet.com> (Arun Isaac's message of "Wed, 30 Aug 2017 00:36:28 +0530")
Hi!
Arun Isaac <arunisaac@systemreboot.net> skribis:
> * gnu/packages/bootloaders.scm (os-prober): New variable.
[...]
> + (replace 'install
> + (lambda* (#:key outputs #:allow-other-keys)
> + (let* ((out (assoc-ref outputs "out"))
> + (bin (string-append out "/bin"))
> + (lib (string-append out "/lib"))
> + (share (string-append out "/share")))
> + (for-each (cut install-file <> bin)
> + (list "linux-boot-prober" "os-prober"))
> + (install-file "newns" (string-append lib "/os-prober"))
> + (install-file "common.sh" (string-append share "/os-prober"))
> + (install-file "os-probes/mounted/powerpc/20macosx"
> + (string-append lib "/os-probes/mounted"))
> + (for-each
> + (lambda (directory)
> + (ftw directory
> + (lambda (file stat flag)
> + (when (eq? flag 'regular)
> + (and-let* ((result (or (string-match "/common/" file)
> + (string-match "/x86/" file))))
> + (install-file
> + file (dirname
> + (string-append
> + lib "/" (substring file 0 (match:start result 0))
> + (substring file (1- (match:end result 0))))))))
> + #t)))
For clarity, what about (1) using ‘find-files’ instead of ‘ftw’, and (2)
separating code that builds the list of files from code that calls
‘install-file’?
So something like:
(define (candidate-files directory)
(find-files directory
(lambda (file stat)
(and (eq? (stat:kind stat) 'regular)
…))))
(for-each (lambda (file)
(install-file file …))
(append-map candidate-files
(list "os-probes" "linux-boot-probes")))
WDYT?
Ludo’.
next prev parent reply other threads:[~2017-08-31 13:27 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-29 19:06 [bug#28281] [PATCH] gnu: Add os-prober Arun Isaac
[not found] ` <handler.28281.B.150403363917922.ack@debbugs.gnu.org>
2017-08-29 19:19 ` [bug#28281] Acknowledgement ([PATCH] gnu: Add os-prober.) Arun Isaac
2017-08-31 13:25 ` Ludovic Courtès [this message]
2017-08-31 17:41 ` [bug#28281] [PATCH] gnu: Add os-prober Arun Isaac
2017-09-09 17:16 ` Arun Isaac
[not found] <20170909171635.7968-1-arunisaac@systemreboot.net>
2017-09-09 17:24 ` Arun Isaac
[not found] ` <e7d9c9ca.AEQAP00oGCwAAAAAAAAAAAOzWv8AAAACwQwAAAAAAAW9WABZtCPY@mailjet.com>
2017-09-10 13:05 ` Ludovic Courtès
2017-09-10 16:02 ` Arun Isaac
[not found] ` <403302d1.ADkAAC_e-_IAAAAAAAAAAAOzWv8AAAACwQwAAAAAAAW9WABZtWIT@mailjet.com>
2017-09-10 20:41 ` Ludovic Courtès
2017-09-10 23:35 ` Arun Isaac
[not found] ` <5dc91a20.AEAAPzHdNuYAAAAAAAAAAAOzWv8AAAACwQwAAAAAAAW9WABZtcxv@mailjet.com>
2017-09-11 7:28 ` Ludovic Courtès
2017-09-11 17:23 ` Arun Isaac
[not found] ` <207deec4.AEAAP2Xyu24AAAAAAAAAAAOzWv8AAAACwQwAAAAAAAW9WABZtsaB@mailjet.com>
2017-09-11 20:20 ` Ludovic Courtès
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87lglzrhr7.fsf@gnu.org \
--to=ludo@gnu.org \
--cc=28281@debbugs.gnu.org \
--cc=arunisaac@systemreboot.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.