[1/7] import cran: Remove more invalid characters from package names.
Commit Message
* guix/import/cran.scm (guix-name): Replace period and underscore with
dash; always prepend package names with "r-".
---
guix/import/cran.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
Comments
Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de> skribis:
> * guix/import/cran.scm (guix-name): Replace period and underscore with
> dash; always prepend package names with "r-".
[...]
> + (string-append "r-" (string-downcase
> + (regexp-substitute/global #f "(_|\\.)" name
> + 'pre "-" 'post))))
I have a preference fro ‘string-map’, which I find more readable than
‘regexp-substitute/global’ in simple cases. Thoughts?
Otherwise LGTM!
Thanks,
Ludo’.
Ludovic Courtès <ludo@gnu.org> writes:
> Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de> skribis:
>
>> * guix/import/cran.scm (guix-name): Replace period and underscore with
>> dash; always prepend package names with "r-".
>
> [...]
>
>> + (string-append "r-" (string-downcase
>> + (regexp-substitute/global #f "(_|\\.)" name
>> + 'pre "-" 'post))))
>
> I have a preference fro ‘string-map’, which I find more readable than
> ‘regexp-substitute/global’ in simple cases. Thoughts?
>
> Otherwise LGTM!
Using “string-map” is indeed nicer! I’m not a fan of
“regexp-substitute/global” (and regular expressions in general), but it
didn’t occur to me to use “string-map”. Thanks for the hint.
~~ Ricardo
@@ -151,9 +151,9 @@ empty list when the FIELD cannot be found."
"Return the `package' s-expression for an R package published on REPOSITORY
from the alist META, which was derived from the R package's DESCRIPTION file."
(define (guix-name name)
- (if (string-prefix? "r-" name)
- (string-downcase name)
- (string-append "r-" (string-downcase name))))
+ (string-append "r-" (string-downcase
+ (regexp-substitute/global #f "(_|\\.)" name
+ 'pre "-" 'post))))
(let* ((base-url (case repository
((cran) %cran-url)