Есть ли у Hackage API?

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


person Vlad the Impala    schedule 17.03.2013    source источник


Ответы (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
comment
Это выглядит интересно, но, как вы сказали, большинство ответов представляют собой HTML, и нет возможности получить список зависимостей:/ - person Vlad the Impala; 18.03.2013
comment
Как в зависимостях пакетов? Вы можете использовать библиотеку Cabal. - person Thomas M. DuBuisson; 18.03.2013