Есть ли у Hackage API?
Я хочу иметь возможность искать пакет и получить ссылку для загрузки, а также список всех зависимостей. Есть ли простой способ сделать это через командную строку или модуль Haskell?
2 ответа
Решение
cabal
(доступно из cabal-install
пакет, если у вас его еще нет) может сделать это. Я буду бесстыдно использовать свой только что выпущенный universe
Пакет в качестве примера. Для поиска:
sorghum:~% cabal list universe
* universe
Synopsis: Classes for types where we know all the values
Default available version: 0.0
Installed versions: 0.0
License: BSD3
* universe-th
Synopsis: Construct a Dec's ancestor list.
Default available version: 0.0.0.6
Installed versions: [ Not installed ]
Homepage: http://github.com/jfishcoff/universe-th
License: BSD3
Для информации о зависимости:
sorghum:~% cabal info universe
* universe (library)
Synopsis: Classes for types where we know all the values
Versions available: 0.0
Versions installed: 0.0
Homepage: [ Not specified ]
Bug reports: [ Not specified ]
Description: A small package, in the spirit of data-default, which allows
the munging of finite and recursively enumerable types
Category: Data
License: BSD3
Author: Daniel Wagner
Maintainer: daniel@wagner-home.com
Source repo: [ Not specified ]
Dependencies: base ==4.*, void >=0.1 && <0.6
Documentation: /home/dmwit/.cabal/x86_64/share/doc/universe-0.0/html
Cached: No
Modules:
Data.Universe
Data.Universe.Helpers
Для загрузки и распаковки:
sorghum:~% cabal unpack universe
Downloading universe-0.0...
Unpacking to universe-0.0/
Вы также можете просто скачать без распаковки с cabal fetch
, для которого вы можете наслаждаться --no-dependencies
флаг (или еще раз, может быть, нет).
AFAIK текущий хакер не имеет его. Но у нового есть несколько базовых вызовов API. Большинство из них возвращает HTML, но некоторые возвращают представление JSON.