packages feed

stack-clean-old-0.4.3: src/Remove.hs

module Remove (
  doRemoveDirectory,
  prompt,
  removeFile
  )
where

import Control.Monad.Extra
import qualified System.Directory as D

import Types

doRemoveDirectory :: Deletion -> FilePath -> IO ()
doRemoveDirectory deletion dir =
  when (isDelete deletion) $
  D.removeDirectoryRecursive dir

removeFile :: Deletion -> FilePath -> IO ()
removeFile deletion file =
  when (isDelete deletion) $
  whenM (D.doesFileExist file) $
  D.removeFile file

prompt :: Deletion -> String -> IO ()
prompt deletion str =
  if isDelete deletion
  then do
    putStr $ "Press Enter to delete " ++ str ++ ": "
    void getLine
  else
    putStrLn $ str ++ " would be deleted"