Я хочу иметь возможность искать пакет и получать ссылку для скачивания, а также список всех зависимостей. Есть ли простой способ сделать это через командную строку или модуль Haskell?
Есть ли у Hackage API?
Ответы (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: [email protected]
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
(а может и нет).
person
Daniel Wagner
schedule
18.03.2013
Насколько мне известно, в текущем хаке этого нет. Но новый имеет некоторые основные вызовы API. Большинство из них возвращает html, но некоторые из них возвращают представление JSON.
person
Yuras
schedule
17.03.2013
Это выглядит интересно, но, как вы сказали, большинство ответов представляют собой HTML, и нет возможности получить список зависимостей:/
- person Vlad the Impala; 18.03.2013
Как в зависимостях пакетов? Вы можете использовать библиотеку Cabal.
- person Thomas M. DuBuisson; 18.03.2013