packages feed

fbrnch-1.0.0: src/Cmd/Repoquery.hs

module Cmd.Repoquery
  (repoqueryCmd)
where

import Branches
import Common.System
import Package

import qualified Data.List as L

repoqueryCmd :: (BranchesReq, [String]) -> IO ()
repoqueryCmd (breq, pkgs) = do
  query <- if null pkgs
           then pure <$> getDirectoryName
           else return pkgs
  brs <- listOfBranches True False breq
  sysbr <- systemBranch
  mapM_ (repoquery_ sysbr query) brs
  where
    repoquery_ :: Branch -> [String] -> Branch -> IO ()
    repoquery_ sysbr query br = do
      let qf = ["--queryformat=%{repoid}: %{name}-%{version}-%{release}.%{arch}"
               | not (any ("--qf" `L.isPrefixOf`) query)]
      repoquery sysbr br (qf ++ query) >>= putStrLn