atomic-write: Atomically write to a file

[ library, mit, system ] [ Propose Tags ]

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
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
Dependencies base (>=4.5 && <5.0), bytestring (>=0.10.4), directory, filepath, temporary, text, unix-compat [details]
License MIT
Copyright 2015-2018 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 Mon Nov 5 19:34:12 UTC 2018
Distributions LTSHaskell:0.2.0.5, NixOS:0.2.0.6, Stackage:0.2.0.6
Downloads 2817 total (69 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2018-11-05 [all 1 reports]
Hackage Matrix CI

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees