Y at-il de toute façon, probablement en utilisant le package Cabal
, pour obtenir une liste de PackageDesciption
dans la base de données locale actuelle?Obtention d'une liste de `PackageDescriptions` de la base de données locale
0
A
Répondre
2
Je ne sais pas s'il y a un -way de le faire « intégré », mais je l'ai utilisé cette
ghc-pkg list | grep -v "\(^/\|^$\|(\)" | xargs cabal info | grep "\(^\*\|License\)"
pour extraire les informations « licence » pour tous les paquets installés.
- Si vous utilisez
stack
oucabal-sandbox
- la première commande doit être remplacé soit parstack exec -- ghc-pkg list
oucabal sandbox hc-pkg list
. - le (premier) regex supprime le chemin des lignes comme
/opt/ghc/8.0.2/lib/ghc-8.0.2/package.conf.d
, des lignes et des lignes vides commençant par(
- en quelque sorte les lignes colorées produites parghc-pkg
commeghc-8.0.2
finissent avec à partir(
dans mon terminal lorsque grepper. - « Info carte cabale sur tous les paquets »
- [en option] extraire les informations de package pour le paquet lui-même (en commençant par
*
et le champLicense
.
J'espère que c'est ce que vous recherchez. Une autre façon, je pense, serait d'écrire un programme de haskell et d'utiliser Cabal
comme une bibliothèque
Y at-il quelque chose de flou dans ma réponse, ou avez-vous besoin d'une solution de "haskell" au lieu de shell cruft – epsilonhalbe
Je préférerais un Haskell solution autre que la cruauté de la coquille. Je vais creuser dans la source de "ghc-pkg" et voir comment ça marche. – Clinton