diff options
Diffstat (limited to 'vendor/github.com/otiai10/copy/README.md')
| -rw-r--r-- | vendor/github.com/otiai10/copy/README.md | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/vendor/github.com/otiai10/copy/README.md b/vendor/github.com/otiai10/copy/README.md new file mode 100644 index 0000000..1cc8fc8 --- /dev/null +++ b/vendor/github.com/otiai10/copy/README.md @@ -0,0 +1,108 @@ +# copy + +[](https://pkg.go.dev/github.com/otiai10/copy) +[](https://github.com/otiai10/copy/actions) +[](https://codecov.io/gh/otiai10/copy) +[](https://github.com/otiai10/copy/blob/main/LICENSE) +[](https://app.fossa.com/projects/git%2Bgithub.com%2Fotiai10%2Fcopy?ref=badge_shield) +[](https://github.com/otiai10/copy/actions/workflows/codeql-analysis.yml) +[](https://goreportcard.com/report/github.com/otiai10/copy) +[](https://pkg.go.dev/github.com/otiai10/copy) +[](https://github.com/otiai10/copy/actions/workflows/docker-test.yml) +[](https://github.com/otiai10/copy/actions/workflows/vagrant-test.yml) + +`copy` copies directories recursively. + +# Example Usage + +```go +package main + +import ( + "fmt" + cp "github.com/otiai10/copy" +) + +func main() { + err := cp.Copy("your/src", "your/dest") + fmt.Println(err) // nil +} +``` + +# Advanced Usage + +```go +// Options specifies optional actions on copying. +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 + + // OnError can let users decide how to handle errors (e.g., you can suppress specific error). + OnError func(src, dest, string, err error) error + + // Skip can specify which files should be skipped + Skip func(srcinfo os.FileInfo, src, dest string) (bool, error) + + // PermissionControl can control permission of + // every entry. + // When you want to add permission 0222, do like + // + // PermissionControl = AddPermission(0222) + // + // or if you even don't want to touch permission, + // + // PermissionControl = DoNothing + // + // By default, PermissionControl = PreservePermission + PermissionControl PermissionControlFunc + + // 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 + + // Preserve the uid and the gid of all entries. + PreserveOwner bool + + // The byte size of the buffer to use for copying files. + // If zero, the internal default buffer of 32KB is used. + // See https://golang.org/pkg/io/#CopyBuffer for more information. + CopyBufferSize uint + + // If you want to add some limitation on reading src file, + // you can wrap the src and provide new reader, + // such as `RateLimitReader` in the test case. + WrapReader func(src io.Reader) io.Reader + + // If given, copy.Copy refers to this fs.FS instead of the OS filesystem. + // e.g., You can use embed.FS to copy files from embedded filesystem. + FS fs.FS +} +``` + +```go +// For example... +opt := Options{ + Skip: func(info os.FileInfo, src, dest string) (bool, error) { + return strings.HasSuffix(src, ".git"), nil + }, +} +err := Copy("your/directory", "your/directory.copy", opt) +``` + +# Issues + +- https://github.com/otiai10/copy/issues + + +## License +[](https://app.fossa.com/projects/git%2Bgithub.com%2Fotiai10%2Fcopy?ref=badge_large)
\ No newline at end of file |
