name:                 atomic-write
version:              0.2.1.0
visibility:           public
id:                   atomic-write-0.2.1.0-BVbzcUalFuMHlyJeq2fH0P
key:                  atomic-write-0.2.1.0-BVbzcUalFuMHlyJeq2fH0P
license:              MIT
copyright:            2015-2019 Stack Builders Inc.
maintainer:           support@stackbuilders.com
author:               Justin Leitgeb
homepage:             https://github.com/stackbuilders/atomic-write
synopsis:             Atomically write to a file
description:

    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:

    * <http://apidock.com/rails/File/atomic_write/class Ruby on Rails includes a similar method called atomic_write>

    * <https://github.com/chef/chef/blob/c4631816132fcfefaba3d123a1d0dfe8bc2866bb/lib/chef/file_content_management/deploy/mv_unix.rb#L23:L71 Chef includes atomic update functionality>

    * <https://github.com/sashka/atomicfile There is a python library for atomically updating a file>

    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

category:             System
abi:                  b8efed78f62af34b3f43e8553dad8e75
exposed:              True
exposed-modules:
    System.AtomicWrite.Writer.ByteString
    System.AtomicWrite.Writer.ByteString.Binary
    System.AtomicWrite.Writer.ByteStringBuilder
    System.AtomicWrite.Writer.LazyByteString
    System.AtomicWrite.Writer.LazyByteString.Binary
    System.AtomicWrite.Writer.LazyText
    System.AtomicWrite.Writer.LazyText.Binary
    System.AtomicWrite.Writer.String
    System.AtomicWrite.Writer.String.Binary
    System.AtomicWrite.Writer.Text
    System.AtomicWrite.Writer.Text.Binary

hidden-modules:       System.AtomicWrite.Internal
import-dirs:
    /usr/pkg/lib/aarch64-netbsd-ghc-9.10.1/atomic-write-0.2.1.0-BVbzcUalFuMHlyJeq2fH0P

library-dirs:
    /usr/pkg/lib/aarch64-netbsd-ghc-9.10.1/atomic-write-0.2.1.0-BVbzcUalFuMHlyJeq2fH0P

library-dirs-static:
    /usr/pkg/lib/aarch64-netbsd-ghc-9.10.1/atomic-write-0.2.1.0-BVbzcUalFuMHlyJeq2fH0P

dynamic-library-dirs: /usr/pkg/lib/aarch64-netbsd-ghc-9.10.1
data-dir:
    /usr/pkg/share/aarch64-netbsd-ghc-9.10.1/atomic-write-0.2.1.0

hs-libraries:         HSatomic-write-0.2.1.0-BVbzcUalFuMHlyJeq2fH0P
depends:
    base-4.20.0.0-inplace bytestring-0.12.1.0-inplace
    directory-1.3.8.3-inplace filepath-1.5.2.0-inplace
    temporary-1.3-EBFu3yP3O207y4rLlHfnji text-2.1.1-inplace
    unix-compat-0.7.3-EFdduD3vEK66MRAIPFdhPn

haddock-interfaces:
    /usr/pkg/share/doc/aarch64-netbsd-ghc-9.10.1/atomic-write-0.2.1.0/html/atomic-write.haddock

haddock-html:
    /usr/pkg/share/doc/aarch64-netbsd-ghc-9.10.1/atomic-write-0.2.1.0/html
