fbrnch-1.1.2: src/Cmd/WaitRepo.hs
module Cmd.WaitRepo (
waitrepoCmd,
WaitFetch(..)
)
where
import Common.System
import Data.Maybe
import Branches
import Git
import Koji
import Package
data WaitFetch = WaitNoFetch | WaitDirty | WaitFetch
-- FIXME first check/wait for build to actually exist
waitrepoCmd :: Bool -> WaitFetch -> Maybe String -> (BranchesReq, [String])
-> IO ()
waitrepoCmd dryrun fetch mtarget = do
withPackagesByBranches HeaderMay False
(case fetch of
WaitFetch -> cleanGitFetchActive
WaitNoFetch -> cleanGitActive
WaitDirty -> dirtyGitActive)
AnyNumber waitrepoBranch
where
waitrepoBranch :: Package -> AnyBranch -> IO ()
waitrepoBranch _ (OtherBranch _) =
error' "waitrepo only defined for release branches"
waitrepoBranch pkg rbr@(RelBranch br) = do
gitSwitchBranch rbr
let spec = packageSpec pkg
nvr <- pkgNameVerRel' br spec
timeIO $
kojiWaitRepo dryrun True (fromMaybe (branchTarget br) mtarget) nvr