FileManip-0.1: Expressive file and directory manipulation for Haskell.ContentsIndex
System.FilePath.Manip
PortabilityUnix-like systems (requires flexible instances)
Stabilityunstable
MaintainerBryan O'Sullivan <bos@serpentine.com>
Description
Synopsis
class Streamable a where
readAll :: Handle -> IO a
writeAll :: Handle -> a -> IO ()
renameWith :: (FilePath -> FilePath) -> FilePath -> IO ()
modifyWith :: Streamable a => (FilePath -> FilePath -> IO ()) -> (a -> a) -> FilePath -> IO ()
modifyWithBackup :: Streamable a => (FilePath -> FilePath) -> (a -> a) -> FilePath -> IO ()
modifyInPlace :: Streamable a => (a -> a) -> FilePath -> IO ()
Documentation
class Streamable a where
Type class for string manipulation over files.
Methods
readAll :: Handle -> IO a
Read the entire contents of a Handle.
writeAll :: Handle -> a -> IO ()
Write an entire string to a Handle.
show/hide Instances
renameWith
:: (FilePath -> FilePath)function to rename with
-> FilePathfile to rename
-> IO ()
Use a renaming function to generate a new name for a file, then rename it.
modifyWith
:: Streamable a
=> (FilePath -> FilePath -> IO ())file manipulation action
-> (a -> a)transformation function
-> FilePath
-> IO ()

Modify a file in place using the given function. The new content is written to a temporary file. Once this is complete, the file manipulation action is called. Its arguments are the names of the original and temporary files.

Example:

     modifyInPlace = modifyWith (flip rename)
 
modifyWithBackup
:: Streamable a
=> (FilePath -> FilePath)chooses new name for original file
-> (a -> a)transformation function
-> FilePathname of file to modify
-> IO ()

Modify a file in place using the given function. The original copy of the file is saved under a new name. This is performed by writing to a temporary file; renaming the original file to its new name; then renaming the temporary file to the original name.

Example:

     -- save original file with a ".bak" extension
     modifyWithBackup (<.> "bak")
 
modifyInPlace
:: Streamable a
=> (a -> a)transformation function
-> FilePathname of file to modify
-> IO ()
Modify a file in place using the given function. This is performed by writing to a temporary file, then renaming it on top of the existing file when done.
Produced by Haddock version 0.8