guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 3/3] import: Add Hackage updater.


From: Ludovic Courtès
Subject: Re: [PATCH 3/3] import: Add Hackage updater.
Date: Mon, 28 Mar 2016 18:12:05 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

address@hidden skribis:

> From: Eric Bavier <address@hidden>
>
> * guix/import/hackage.scm (guix-package->hackage-name, hackage-package?)
>   (latest-release): New procedures.
>   (%hackage-updater): New variable.
> * guix/scripts/refresh.scm (%updaters): Add it.
> * doc/guix.texi (Invoking guix refresh): Mention it.

[...]

> +(define guix-package->hackage-name
> +  (let ((uri-rx (make-regexp 
> "https?://hackage.haskell.org/package/([^/]+)/.*"))
> +        (name-rx (make-regexp "(.*)-[0-9\\.]+")))
> +    (lambda (package)
> +      "Given a Guix package name, return the corresponding Hackage name."
> +      (let* ((source-url (and=> (package-source package) origin-uri))
> +             (name (match:substring (regexp-exec uri-rx source-url) 1)))
> +        (match (regexp-exec name-rx name)
> +          (#f name)
> +          (m (match:substring m 1)))))))

It might be useful to honor a ‘cabal-package-name’ property in cases
where guessing doesn’t work.  That can always be added later, though.

[...]

>                   %elpa-updater
>                   %cran-updater
>                   %bioconductor-updater
> +                 %hackage-updater

Make it:

  ((guix import hackage) => %hackage-importer)

to be on the safe side.

If you confirm that ‘guix refresh -t hackage’ doesn’t crash, go for it!

Thank you!

Ludo’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]