packages feed

cabal-rpm-0.9: src/Commands/Depends.hs

-- |
-- Module      :  Commands.Depends
-- Copyright   :  (C) 2014 Jens Petersen
--
-- Maintainer  :  Jens Petersen <petersen@fedoraproject.org>
-- Stability   :  alpha
--
-- Explanation: cabal wrapper which yum installs dependencies

-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.

module Commands.Depends (
    depends,
    Depends (..)
    ) where

import Dependencies (dependencies, packageDependencies )
import PackageUtils (missingPackages, PackageData (..), packageName)

import Data.List (sort)
import Distribution.PackageDescription (PackageDescription (..))

data Depends = Depends | Requires | Missing

depends :: PackageData -> Depends -> IO ()
depends pkgdata action = do
  let pkgDesc = packageDesc pkgdata
      pkg = package pkgDesc
      name = packageName pkg
  case action of
    Depends -> do
      (deps, tools, clibs, pkgcfgs, _) <- dependencies pkgDesc name
      let clibs' = map (\ lib -> "lib" ++ lib ++ ".so") clibs
      let pkgcfgs' = map (++ ".pc") pkgcfgs
      mapM_ putStrLn $ deps ++ tools ++ clibs' ++ pkgcfgs'
    Requires -> do
      (deps, tools, clibs, pkgcfgs, _) <- packageDependencies pkgDesc name
      mapM_ putStrLn $ sort $ deps ++ tools ++ clibs ++ pkgcfgs
    Missing -> do
      missing <- missingPackages pkgDesc name
      mapM_ putStrLn missing