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.
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:
If an original file exists, take those permissions and apply them to the temp file before
mv
ing the file into place.If the original file does not exist, create a following with default permissions (based on the currently-active umask).
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
Versions | 0.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, 0.2.1.0 |
---|---|
Change log | None available |
Dependencies | base (>=4.5 && <5.0), bytestring (>=0.10.4), directory, filepath, temporary, text, unix-compat [details] |
License | MIT |
Copyright | 2015-2019 Stack Builders Inc. |
Author | Justin Leitgeb |
Maintainer | support@stackbuilders.com |
Category | System |
Home page | https://github.com/stackbuilders/atomic-write |
Bug tracker | https://github.com/stackbuilders/atomic-write/issues |
Source repo | head: git clone git@github.com:stackbuilders/atomic-write.git |
Uploaded | by juanpaucar at 2019-11-21T20:46:21Z |
Modules
[Index] [Quick Jump]
Downloads
- atomic-write-0.2.0.7.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
Package maintainers
For package maintainers and hackage trustees