-
-
Notifications
You must be signed in to change notification settings - Fork 115
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #37 from otiai10/develop
Add "OnDirExists" option
- Loading branch information
Showing
14 changed files
with
261 additions
and
121 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,62 @@ | ||
# copy | ||
|
||
[![Go Reference](https://pkg.go.dev/badge/github.com/otiai10/copy.svg)](https://pkg.go.dev/github.com/otiai10/copy) | ||
[![Actions Status](https://github.com/otiai10/copy/workflows/Go/badge.svg)](https://github.com/otiai10/copy/actions) | ||
[![codecov](https://codecov.io/gh/otiai10/copy/branch/master/graph/badge.svg)](https://codecov.io/gh/otiai10/copy) | ||
[![GoDoc](https://godoc.org/github.com/otiai10/copy?status.svg)](https://godoc.org/github.com/otiai10/copy) | ||
[![codecov](https://codecov.io/gh/otiai10/copy/branch/main/graph/badge.svg)](https://codecov.io/gh/otiai10/copy) | ||
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://github.com/otiai10/copy/blob/main/LICENSE) | ||
[![Go Report Card](https://goreportcard.com/badge/github.com/otiai10/copy)](https://goreportcard.com/report/github.com/otiai10/copy) | ||
[![GitHub tag (latest SemVer)](https://img.shields.io/github/v/tag/otiai10/copy?sort=semver)](https://pkg.go.dev/github.com/otiai10/copy) | ||
|
||
`copy` copies directories recursively. | ||
|
||
Example: | ||
# Example Usage | ||
|
||
```go | ||
err := Copy("your/directory", "your/directory.copy") | ||
``` | ||
|
||
# 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 | ||
|
||
// 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 | ||
|
||
} | ||
``` | ||
|
||
```go | ||
// For example... | ||
opt := Options{ | ||
Skip: func(src string) { | ||
return strings.HasSuffix(src, ".git") | ||
}, | ||
} | ||
err := Copy("your/directory", "your/directory.copy", opt) | ||
``` | ||
|
||
# Issues | ||
|
||
- https://github.com/otiai10/copy/issues |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.