directory-1.3.3.2: Platform-agnostic library for filesystem operations
Stabilityunstable
Portabilityunportable
Safe HaskellSafe
LanguageHaskell2010

System.Directory.Internal

Description

Internal modules are always subject to change from version to version. The contents of this module are also platform-dependent, hence what is shown in the Hackage documentation may differ from what is actually available on your system.

Synopsis

Documentation

newtype ListT m a Source #

A generator with side-effects.

Constructors

ListT 

Fields

listToListT :: Applicative m => [a] -> ListT m a Source #

liftJoinListT :: Monad m => m (ListT m a) -> ListT m a Source #

listTHead :: Functor m => ListT m a -> m (Maybe a) Source #

listTToList :: Monad m => ListT m a -> m [a] Source #

andM :: Monad m => m Bool -> m Bool -> m Bool Source #

tryIOErrorType :: (IOError -> Bool) -> IO a -> IO (Either IOError a) Source #

Similar to try but only catches a specify kind of IOError as specified by the predicate.

ignoreIOExceptions :: IO () -> IO () Source #

Attempt to perform the given action, silencing any IO exception thrown by it.

expandDots :: [FilePath] -> [FilePath] Source #

Given a list of path segments, expand . and ... The path segments must not contain path separators.

normalisePathSeps :: FilePath -> FilePath Source #

Convert to the right kind of slashes.

normaliseTrailingSep :: FilePath -> FilePath Source #

Remove redundant trailing slashes and pick the right kind of slash.

emptyToCurDir :: FilePath -> FilePath Source #

Convert empty paths to the current directory, otherwise leave it unchanged.

simplifyPosix :: FilePath -> FilePath Source #

Similar to normalise but empty paths stay empty.

simplifyWindows :: FilePath -> FilePath Source #

Similar to normalise but:

  • empty paths stay empty,
  • parent dirs (..) are expanded, and
  • paths starting with \\?\ are preserved.

The goal is to preserve the meaning of paths better than normalise.

data FileType Source #

Constructors

File 
SymbolicLink

POSIX: either file or directory link; Windows: file link

Directory 
DirectoryLink

Windows only: directory link

Instances

Instances details
Bounded FileType # 
Instance details

Defined in System.Directory.Internal.Common

Enum FileType # 
Instance details

Defined in System.Directory.Internal.Common

Eq FileType # 
Instance details

Defined in System.Directory.Internal.Common

Ord FileType # 
Instance details

Defined in System.Directory.Internal.Common

Read FileType # 
Instance details

Defined in System.Directory.Internal.Common

Show FileType # 
Instance details

Defined in System.Directory.Internal.Common

fileTypeIsDirectory :: FileType -> Bool Source #

Check whether the given FileType is considered a directory by the operating system. This affects the choice of certain functions e.g. removeDirectory vs removeFile.

fileTypeIsLink :: FileType -> Bool Source #

Return whether the given FileType is a link.

copyFileContents Source #

Arguments

:: FilePath

Source filename

-> FilePath

Destination filename

-> IO () 

Truncate the destination file and then copy the contents of the source file to the destination file. If the destination file already exists, its attributes shall remain unchanged. Otherwise, its attributes are reset to the defaults.

copyFileToHandle Source #

Arguments

:: FilePath

Source file

-> Handle

Destination handle

-> IO () 

Copy all data from a file to a handle.

copyHandleData Source #

Arguments

:: Handle

Source handle

-> Handle

Destination handle

-> IO () 

Copy data from one handle to another until end of file.

data XdgDirectory Source #

Special directories for storing user-specific application data, configuration, and cache files, as specified by the XDG Base Directory Specification.

Note: On Windows, XdgData and XdgConfig map to the same directory.

Since: directory-1.2.3.0

Constructors

XdgData

For data files (e.g. images). Defaults to ~/.local/share and can be overridden by the XDG_DATA_HOME environment variable. On Windows, it is %APPDATA% (e.g. C:/Users/<user>/AppData/Roaming). Can be considered as the user-specific equivalent of /usr/share.

XdgConfig

For configuration files. Defaults to ~/.config and can be overridden by the XDG_CONFIG_HOME environment variable. On Windows, it is %APPDATA% (e.g. C:/Users/<user>/AppData/Roaming). Can be considered as the user-specific equivalent of /etc.

XdgCache

For non-essential files (e.g. cache). Defaults to ~/.cache and can be overridden by the XDG_CACHE_HOME environment variable. On Windows, it is %LOCALAPPDATA% (e.g. C:/Users/<user>/AppData/Local). Can be considered as the user-specific equivalent of /var/cache.

Instances

Instances details
Bounded XdgDirectory # 
Instance details

Defined in System.Directory.Internal.Common

Enum XdgDirectory # 
Instance details

Defined in System.Directory.Internal.Common

Eq XdgDirectory # 
Instance details

Defined in System.Directory.Internal.Common

Ord XdgDirectory # 
Instance details

Defined in System.Directory.Internal.Common

Read XdgDirectory # 
Instance details

Defined in System.Directory.Internal.Common

Show XdgDirectory # 
Instance details

Defined in System.Directory.Internal.Common

data XdgDirectoryList Source #

Search paths for various application data, as specified by the XDG Base Directory Specification.

Note: On Windows, XdgDataDirs and XdgConfigDirs yield the same result.

Since: directory-1.3.2.0

Constructors

XdgDataDirs

For data files (e.g. images). Defaults to usrlocalshare and usrshare/ and can be overridden by the XDG_DATA_DIRS environment variable. On Windows, it is %PROGRAMDATA% or %ALLUSERSPROFILE% (e.g. C:/ProgramData).

XdgConfigDirs

For configuration files. Defaults to etcxdg and can be overridden by the XDG_CONFIG_DIRS environment variable. On Windows, it is %PROGRAMDATA% or %ALLUSERSPROFILE% (e.g. C:/ProgramData).

Instances

Instances details
Bounded XdgDirectoryList # 
Instance details

Defined in System.Directory.Internal.Common

Enum XdgDirectoryList # 
Instance details

Defined in System.Directory.Internal.Common

Eq XdgDirectoryList # 
Instance details

Defined in System.Directory.Internal.Common

Ord XdgDirectoryList # 
Instance details

Defined in System.Directory.Internal.Common

Read XdgDirectoryList # 
Instance details

Defined in System.Directory.Internal.Common

Show XdgDirectoryList # 
Instance details

Defined in System.Directory.Internal.Common

simplify :: FilePath -> FilePath Source #

On POSIX, equivalent to simplifyPosix.

c_free :: Ptr a -> IO () Source #

prependCurrentDirectory :: FilePath -> IO FilePath Source #

Convert a path into an absolute path. If the given path is relative, the current directory is prepended and the path may or may not be simplified. If the path is already absolute, the path is returned unchanged. The function preserves the presence or absence of the trailing path separator.

If the path is already absolute, the operation never fails. Otherwise, the operation may throw exceptions.

Empty paths are treated as the current directory.

getPath :: IO [FilePath] Source #

Get the contents of the PATH environment variable.