Subject: Re: [bug#50755] [PATCH] import: Generate list of importers based on available modules

From: Sarah Morgensen <[email-masked]>
Date: Thu, 23 Sep 2021 11:07:40 -0700

Hello,

This looks like a good improvement! Thanks for submitting the patch.
Just reading ths, I have a couple comments.

pinoaffe <[email-masked]> writes:

> * guix/scripts/import.scm (importers): Generate a list of all importers by
> looping over available guile modules, allowing for extensibility.
> ---
>  guix/scripts/import.scm | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/guix/scripts/import.scm b/guix/scripts/import.scm
> index 40fa6759ae..44cbaf13d6 100644
> --- a/guix/scripts/import.scm
> +++ b/guix/scripts/import.scm
> @@ -23,6 +23,7 @@
>  
>  (define-module (guix scripts import)
>    #:use-module (guix ui)
> +  #:use-module (guix discovery)
>    #:use-module (guix scripts)
>    #:use-module (guix utils)
>    #:use-module (srfi srfi-1)
> @@ -78,9 +79,11 @@ rather than \\n."
>  ;;; Entry point.
>  ;;;
>  
> -(define importers '("gnu" "pypi" "cpan" "hackage" "stackage" "egg" "elpa"
> -                    "gem" "go" "cran" "crate" "texlive" "json" "opam"
> -                    "minetest"))
> +(define importers (map (lambda (module)
> +                         (symbol->string (caddr (module-name module))))

Prefer ice-9 'match'/'match-lambda' over 'car'/'cadr'/'caddr'/etc, or if
necessary, SRFI-1 'first', 'second', ..., 'last'.

> +                       (all-modules (map (lambda (entry)
> +                                           `(,entry . "guix/import"))
                         should this be guix/scripts/import? ^

> +                                         %load-path))))
>  
>  (define (resolve-importer name)
>    (let ((module (resolve-interface

--
Sarah