atomic-write: Atomically write to a file

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain]

Atomically write to a file on POSIX-compliant systems while preserving permissions.

On most Unix systems, mv is an atomic operation. This makes it simple to write to a file atomically just by using the mv operation. However, this will destroy the permissions on the original file. This library does the following to preserve permissions while atomically writing to a file:

This way, when the file is mv'ed into place, the permissions will be the ones held by the original file.

This library is based on similar implementations found in common libraries in Ruby and Python:

To use atomic-write, import the module corresponding to the type you wish to write atomically, e.g., to write a (strict) ByteString atomically:

import System.AtomicWrite.Writer.ByteString

Then you can use the atomicWriteFile function that accepts a FilePath and a ByteString, e.g.:

atomicWriteFile myFilePath myByteString

Properties

Versions0.1.0.0, 0.1.0.1, 0.2.0.0, 0.2.0.1, 0.2.0.2, 0.2.0.3, 0.2.0.4, 0.2.0.5, 0.2.0.6, 0.2.0.7, 0.2.0.7
Change logNone available
Dependenciesbase (>=4.5 && <5.0), bytestring (>=0.10.4), directory, filepath, temporary, text, unix-compat [details]
LicenseMIT
Copyright2015-2019 Stack Builders Inc.
AuthorJustin Leitgeb
Maintainersupport@stackbuilders.com
CategorySystem
Home pagehttps://github.com/stackbuilders/atomic-write
Bug trackerhttps://github.com/stackbuilders/atomic-write/issues
Source repositoryhead: git clone git@github.com:stackbuilders/atomic-write.git
UploadedThu Nov 21 20:46:21 UTC 2019 by juanpaucar

Modules

[Index]

Downloads

Maintainers' corner

For package maintainers and hackage trustees