fbrnch-1.3: src/Cmd/Bugs.hs
{-# LANGUAGE OverloadedStrings, RecordWildCards #-}
module Cmd.Bugs
(bugsCmd,
bzusersCmd)
where
import Bugzilla
import Common
import Common.System (error')
import qualified Common.Text as T
import Package
bugsCmd :: Maybe String -> [String] -> IO ()
bugsCmd keyword pkgs = do
if null pkgs
-- FIXME check for distgit
then bugsPkg "."
else mapM_ bugsPkg pkgs
where
bugsPkg :: String -> IO ()
bugsPkg path = do
pkg <- getPackageName path
putPkgHdr pkg
let query =
case keyword of
Nothing -> statusOpen
Just key -> statusOpen .&&. summaryContains key
bugs <- bugsAnon $ pkgBugs (unPackage pkg) .&&. query
mapM_ putBugVer $ sortBugsByProduct bugs
bzusersCmd :: String -> IO ()
bzusersCmd name = do
if length (trim name) < 3
then error' "use more than 2 characters"
else do
session <- bzApiKeySession
users <- searchUsers session (T.pack name)
mapM_ printUser users
where
printUser :: User -> IO ()
printUser User{..} =
T.putStrLn $ userRealName <> " " <> "<" <> userName <> ">"