module Unused.CLI.Search ( SearchRunner(..) , renderHeader , executeSearch ) where import qualified Unused.CLI.ProgressIndicator as I import qualified Unused.CLI.Util as U import qualified Unused.CLI.Views as V import qualified Unused.TermSearch as TS data SearchRunner = SearchWithProgress | SearchWithoutProgress renderHeader :: [a] -> IO () renderHeader terms = do U.resetScreen V.analysisHeader terms executeSearch :: SearchRunner -> [TS.SearchTerm] -> IO TS.SearchResults executeSearch runner terms = do renderHeader terms runSearch runner terms <* U.resetScreen runSearch :: SearchRunner -> [TS.SearchTerm] -> IO TS.SearchResults runSearch SearchWithProgress = I.progressWithIndicator TS.search I.createProgressBar runSearch SearchWithoutProgress = I.progressWithIndicator TS.search I.createSpinner