packages feed

fedora-repoquery-0.3: src/List.hs

{-# LANGUAGE OverloadedStrings #-}

module List (
  listVersionsCmd
  ) where

import Control.Monad
import qualified Data.Text.IO as T
import Network.HTTP.Directory
--import SimpleCmd (error')

import Common
import Query (getFedoraServer, fedoraTop)
import Types
import URL

listVersionsCmd :: Verbosity -> RepoSource -> Arch -> IO ()
-- listVersionsCmd _verbose _reposource =
--   error' "listing Centos Stream versions not supported"
--   --showReleaseCmd mgr server (RepoCentosStream chan) arch
-- listVersionsCmd _ RepoKoji =
--   error' "listing Koji versions not supported"
listVersionsCmd verbose reposource arch = do
  mgr <- httpManager
  -- FIXME handle non-fedora versions (eg epel)
  (url,_) <- getFedoraServer False mgr reposource (fedoraTop arch) ["releases"]
  let rurl = renderUrl url
  unless (verbose == Quiet) $ warning $! "<" ++ rurl ++ ">"
  -- FIXME filter very old releases
  httpDirectory mgr rurl >>= mapM_ (T.putStrLn . noTrailingSlash)