package atomicwriter

import "github.com/docker/docker/pkg/atomicwriter"

Index

Functions

func New

func New(filename string, perm os.FileMode) (io.WriteCloser, error)

New returns a WriteCloser so that writing to it writes to a temporary file and closing it atomically changes the temporary file to destination path. Writing and closing concurrently is not allowed. NOTE: umask is not considered for the file's permissions.

func WriteFile

func WriteFile(filename string, data []byte, perm os.FileMode) error

WriteFile atomically writes data to a file named by filename and with the specified permission bits. NOTE: umask is not considered for the file's permissions.

Types

type WriteSet

type WriteSet struct {
	// contains filtered or unexported fields
}

WriteSet is used to atomically write a set of files and ensure they are visible at the same time. Must be committed to a new directory.

func NewWriteSet

func NewWriteSet(tmpDir string) (*WriteSet, error)

NewWriteSet creates a new atomic write set to atomically create a set of files. The given directory is used as the base directory for storing files before commit. If no temporary directory is given the system default is used.

func (*WriteSet) Cancel

func (ws *WriteSet) Cancel() error

Cancel cancels the set and removes all temporary data created in the set.

func (*WriteSet) Commit

func (ws *WriteSet) Commit(target string) error

Commit moves all created files to the target directory. The target directory must not exist and the parent of the target directory must exist.

func (*WriteSet) FileWriter

func (ws *WriteSet) FileWriter(name string, flag int, perm os.FileMode) (io.WriteCloser, error)

FileWriter opens a file writer inside the set. The file should be synced and closed before calling commit.

func (*WriteSet) String

func (ws *WriteSet) String() string

String returns the location the set is writing to.

func (*WriteSet) WriteFile

func (ws *WriteSet) WriteFile(filename string, data []byte, perm os.FileMode) error

WriteFile writes a file to the set, guaranteeing the file has been synced.

Source Files

atomicwriter.go

Version
v28.0.2+incompatible
Published
Mar 18, 2025
Platform
js/wasm
Imports
3 packages
Last checked
2 seconds ago

Tools for package owners.