diff --git a/app/Main.hs b/app/Main.hs index 78a13ae..8b48a48 100644 --- a/app/Main.hs +++ b/app/Main.hs @@ -7,7 +7,7 @@ import Unused.Parser (parseLines) import Unused.Types (ParseResponse, RemovalLikelihood(..)) import Unused.ResponseFilter (withOneOccurrence, withLikelihoods, ignoringPaths) import Unused.Grouping (CurrentGrouping(..), groupedResponses) -import Unused.CLI (SearchRunner(..), executeSearch, printParseError, printSearchResults, resetScreen, withInterruptHandler) +import Unused.CLI (SearchRunner(..), renderHeader, executeSearch, printParseError, printSearchResults, resetScreen, withInterruptHandler) data Options = Options { oSearchRunner :: SearchRunner @@ -35,7 +35,10 @@ run options = do hSetBuffering stdout NoBuffering terms <- pure . lines =<< getContents + renderHeader terms + results <- unlines <$> executeSearch (oSearchRunner options) terms + let response = parseLines results resetScreen diff --git a/src/Unused/CLI/Search.hs b/src/Unused/CLI/Search.hs index 6e6d92a..2085ced 100644 --- a/src/Unused/CLI/Search.hs +++ b/src/Unused/CLI/Search.hs @@ -1,5 +1,6 @@ module Unused.CLI.Search ( SearchRunner(..) + , renderHeader , executeSearch ) where @@ -9,11 +10,15 @@ import Unused.CLI.ProgressIndicator data SearchRunner = SearchWithProgress | SearchWithoutProgress -executeSearch :: SearchRunner -> [String] -> IO [String] -executeSearch runner terms = do +renderHeader :: [String] -> IO () +renderHeader terms = do resetScreen hideCursor printAnalysisHeader terms + +executeSearch :: SearchRunner -> [String] -> IO [String] +executeSearch runner terms = do + renderHeader terms runSearch runner terms <* resetScreen <* showCursor printAnalysisHeader :: [String] -> IO ()