Documentation ¶
Index ¶
- Constants
- func Changes(ctx context.Context, a, b string, changeFn ChangeFunc) error
- func CopyDir(dst, src string) error
- func GetLinkInfo(fi os.FileInfo) (uint64, bool)
- func RootPath(root, path string) (string, error)
- func SupportsDType(path string) (bool, error)
- type Change
- type ChangeFunc
- type ChangeKind
- type Usage
Constants ¶
const ( // ChangeKindUnmodified represents an unmodified // file ChangeKindUnmodified = iota // ChangeKindAdd represents an addition of // a file ChangeKindAdd // ChangeKindModify represents a change to // an existing file ChangeKindModify // ChangeKindDelete represents a delete of // a file ChangeKindDelete )
Variables ¶
This section is empty.
Functions ¶
func Changes ¶
func Changes(ctx context.Context, a, b string, changeFn ChangeFunc) error
Changes computes changes between two directories calling the given change function for each computed change. The first directory is intended to the base directory and second directory the changed directory.
The change callback is called by the order of path names and should be appliable in that order.
Due to this apply ordering, the following is true - Removed directory trees only create a single change for the root directory removed. Remaining changes are implied. - A directory which is modified to become a file will not have delete entries for sub-path items, their removal is implied by the removal of the parent directory.
Opaque directories will not be treated specially and each file removed from the base directory will show up as a removal.
File content comparisons will be done on files which have timestamps which may have been truncated. If either of the files being compared has a zero value nanosecond value, each byte will be compared for differences. If 2 files have the same seconds value but different nanosecond values where one of those values is zero, the files will be considered unchanged if the content is the same. This behavior is to account for timestamp truncation during archiving.
func CopyDir ¶
CopyDir copies the directory from src to dst. Most efficient copy of files is attempted.
func GetLinkInfo ¶
GetLinkID returns an identifier representing the node a hardlink is pointing to. If the file is not hard linked then 0 will be returned.
func RootPath ¶
RootPath joins a path with a root, evaluating and bounding any symlink to the root directory.
func SupportsDType ¶
SupportsDType returns whether the filesystem mounted on path supports d_type
Types ¶
type Change ¶
type Change struct { Kind ChangeKind Path string }
Change represents single change between a diff and its parent.
type ChangeFunc ¶
ChangeFunc is the type of function called for each change computed during a directory changes calculation.
type ChangeKind ¶
type ChangeKind int
ChangeKind is the type of modification that a change is making.
func (ChangeKind) String ¶
func (k ChangeKind) String() string