{-# LANGUAGE DoAndIfThenElse #-} module Cook.Sync where import Cook.Util import Cook.State.Manager import qualified Cook.Docker as D import System.Directory runSync :: FilePath -> IO () runSync stateDir = do createDirectoryIfMissing True stateDir reachable <- D.dockerReachable if reachable then do logInfo "Sync started, please wait..." (stateManager, _) <- createStateManager stateDir imCache <- D.newDockerImagesCache syncImages stateManager (\v -> D.doesImageExist imCache (Left v)) logInfo "Sync complete." else logError "Docker daemon not reachable!"