Safe Haskell | None |
---|---|
Language | Haskell98 |
- type Line = String
- hasContent :: FilePath -> [Line] -> Property UnixLike
- containsLine :: FilePath -> Line -> Property UnixLike
- containsLines :: FilePath -> [Line] -> Property UnixLike
- lacksLine :: FilePath -> Line -> Property UnixLike
- lacksLines :: FilePath -> [Line] -> Property UnixLike
- hasContentProtected :: FilePath -> [Line] -> Property UnixLike
- hasPrivContent :: IsContext c => FilePath -> c -> Property (HasInfo + UnixLike)
- hasPrivContentFrom :: (IsContext c, IsPrivDataSource s) => s -> FilePath -> c -> Property (HasInfo + UnixLike)
- hasPrivContentExposed :: IsContext c => FilePath -> c -> Property (HasInfo + UnixLike)
- hasPrivContentExposedFrom :: (IsContext c, IsPrivDataSource s) => s -> FilePath -> c -> Property (HasInfo + UnixLike)
- hasPrivContent' :: (IsContext c, IsPrivDataSource s) => FileWriteMode -> s -> FilePath -> c -> Property (HasInfo + UnixLike)
- basedOn :: FilePath -> (FilePath, [Line] -> [Line]) -> Property UnixLike
- notPresent :: FilePath -> Property UnixLike
- dirExists :: FilePath -> Property UnixLike
- newtype LinkTarget = LinkTarget FilePath
- isSymlinkedTo :: FilePath -> LinkTarget -> Property UnixLike
- isCopyOf :: FilePath -> FilePath -> Property UnixLike
- ownerGroup :: FilePath -> User -> Group -> Property UnixLike
- mode :: FilePath -> FileMode -> Property UnixLike
- class FileContent c where
- data FileWriteMode
- fileProperty :: (FileContent c, Eq c) => Desc -> (c -> c) -> FilePath -> Property UnixLike
- fileProperty' :: (FileContent c, Eq c) => FileWriteMode -> Desc -> (c -> c) -> FilePath -> Property UnixLike
- stableTmpFor :: FilePath -> FilePath
- viaStableTmp :: (MonadMask m, MonadIO m) => (FilePath -> m ()) -> FilePath -> m ()
Documentation
containsLine :: FilePath -> Line -> Property UnixLike Source #
Ensures that a line is present in a file, adding it to the end if not.
lacksLine :: FilePath -> Line -> Property UnixLike Source #
Ensures that a line is not present in a file. Note that the file is ensured to exist, so if it doesn't, an empty file will be written.
hasContentProtected :: FilePath -> [Line] -> Property UnixLike Source #
Replaces all the content of a file, ensuring that its modes do not allow it to be read or written by anyone other than the current user
hasPrivContent :: IsContext c => FilePath -> c -> Property (HasInfo + UnixLike) Source #
Ensures a file has contents that comes from PrivData.
The file's permissions are preserved if the file already existed. Otherwise, they're set to 600.
hasPrivContentFrom :: (IsContext c, IsPrivDataSource s) => s -> FilePath -> c -> Property (HasInfo + UnixLike) Source #
Like hasPrivContent, but allows specifying a source
for PrivData, rather than using PrivDataSourceFile
.
hasPrivContentExposed :: IsContext c => FilePath -> c -> Property (HasInfo + UnixLike) Source #
Leaves the file at its default or current mode, allowing "private" data to be read.
Use with caution!
hasPrivContentExposedFrom :: (IsContext c, IsPrivDataSource s) => s -> FilePath -> c -> Property (HasInfo + UnixLike) Source #
hasPrivContent' :: (IsContext c, IsPrivDataSource s) => FileWriteMode -> s -> FilePath -> c -> Property (HasInfo + UnixLike) Source #
basedOn :: FilePath -> (FilePath, [Line] -> [Line]) -> Property UnixLike Source #
Replaces the content of a file with the transformed content of another file
notPresent :: FilePath -> Property UnixLike Source #
Removes a file. Does not remove symlinks or non-plain-files.
isSymlinkedTo :: FilePath -> LinkTarget -> Property UnixLike Source #
Creates or atomically updates a symbolic link.
Does not overwrite regular files or directories.
isCopyOf :: FilePath -> FilePath -> Property UnixLike Source #
Ensures that a file is a copy of another (regular) file.
ownerGroup :: FilePath -> User -> Group -> Property UnixLike Source #
Ensures that a file/dir has the specified owner and group.
mode :: FilePath -> FileMode -> Property UnixLike Source #
Ensures that a file/dir has the specfied mode.
class FileContent c where Source #
emptyFileContent :: c Source #
readFileContent :: FilePath -> IO c Source #
writeFileContent :: FileWriteMode -> FilePath -> c -> IO () Source #
fileProperty :: (FileContent c, Eq c) => Desc -> (c -> c) -> FilePath -> Property UnixLike Source #
A property that applies a pure function to the content of a file.
fileProperty' :: (FileContent c, Eq c) => FileWriteMode -> Desc -> (c -> c) -> FilePath -> Property UnixLike Source #
stableTmpFor :: FilePath -> FilePath Source #
A temp file to use when writing new content for a file.
This is a stable name so it can be removed idempotently.
It ends with "~" so that programs that read many config files from a directory will treat it as an editor backup file, and not read it.