[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’.