2013-03-17 3 views
4

Я хочу, чтобы иметь возможность искать пакет и получить ссылку для загрузки, а также список всех зависимостей. Есть ли простой способ сделать это через командную строку или модуль Haskell?Есть ли у Hackage API?

ответ

3

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 (а может быть, и нет).

1

AFAIK у нынешнего хака не имеется. Но новый has некоторые основные вызовы API. Большинство из них возвращает html, но некоторые из них возвращают представление JSON.

+0

Это выглядит интересно, но, как вы сказали, большинство ответов являются HTML, и нет способа получить список зависимостей:/ –

+0

Как и в зависимостях пакетов? Вы можете использовать библиотеку Cabal. –

Смежные вопросы