Documentation ¶
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type DirExistsAction ¶
type DirExistsAction int
DirExistsAction represents what to do on dest dir.
const ( // Merge preserves or overwrites existing files under the dir (default behavior). Merge DirExistsAction = iota // Replace deletes all contents under the dir and copy src files. Replace // Untouchable does nothing for the dir, and leaves it as it is. Untouchable )
type Options ¶
type Options struct { // OnSymlink can specify what to do on symlink OnSymlink func(src string) SymlinkAction // OnDirExists can specify what to do when there is a directory already existing in destination. OnDirExists func(src, dest string) DirExistsAction // Skip can specify which files should be skipped Skip func(src string) (bool, error) // AddPermission to every entities, // NO MORE THAN 0777 AddPermission os.FileMode // Sync file after copy. // Useful in case when file must be on the disk // (in case crash happens, for example), // at the expense of some performance penalty Sync bool // Preserve the atime and the mtime of the entries // On linux we can preserve only up to 1 millisecond accuracy PreserveTimes bool // contains filtered or unexported fields }
Options specifies optional actions on copying.
Example ¶
err := Copy( "testdata/example", "testdata.copy/example_with_options", Options{ Skip: func(src string) (bool, error) { return strings.HasSuffix(src, ".git-like"), nil }, OnSymlink: func(src string) SymlinkAction { return Skip }, AddPermission: 0200, }, ) fmt.Println("Error:", err) _, err = os.Stat("testdata.copy/example_with_options/.git-like") fmt.Println("Skipped:", os.IsNotExist(err))
Output: Error: <nil> Skipped: true
type SymlinkAction ¶
type SymlinkAction int
SymlinkAction represents what to do on symlink.
const ( // Deep creates hard-copy of contents. Deep SymlinkAction = iota // Shallow creates new symlink to the dest of symlink. Shallow // Skip does nothing with symlink. Skip )
Click to show internal directories.
Click to hide internal directories.