38 lines
		
	
	
		
			740 B
		
	
	
	
		
			Haskell
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			740 B
		
	
	
	
		
			Haskell
		
	
	
	
	
	
module GHCup.Utils.Dirs
 | 
						|
 ( GHCupPath
 | 
						|
 , appendGHCupPath
 | 
						|
 , fromGHCupPath
 | 
						|
 , createTempGHCupDirectory
 | 
						|
 , removeDirectory
 | 
						|
 , removeDirectoryRecursive
 | 
						|
 , removePathForcibly
 | 
						|
 )
 | 
						|
 where
 | 
						|
 | 
						|
import Control.DeepSeq (NFData)
 | 
						|
 | 
						|
 | 
						|
-- | A 'GHCupPath' is a safe sub-path that can be recursively deleted.
 | 
						|
newtype GHCupPath = GHCupPath FilePath
 | 
						|
 | 
						|
instance Show GHCupPath where
 | 
						|
 | 
						|
instance Eq GHCupPath where
 | 
						|
 | 
						|
instance Ord GHCupPath where
 | 
						|
 | 
						|
instance NFData GHCupPath where
 | 
						|
 | 
						|
appendGHCupPath :: GHCupPath -> FilePath -> GHCupPath
 | 
						|
 | 
						|
fromGHCupPath :: GHCupPath -> FilePath
 | 
						|
 | 
						|
createTempGHCupDirectory :: GHCupPath -> FilePath -> IO GHCupPath
 | 
						|
 | 
						|
removeDirectory :: GHCupPath -> IO ()
 | 
						|
 | 
						|
removeDirectoryRecursive :: GHCupPath -> IO ()
 | 
						|
 | 
						|
removePathForcibly :: GHCupPath -> IO ()
 | 
						|
 |