diff options
| author | Shulhan <ms@kilabit.info> | 2018-05-21 00:09:15 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2018-05-21 00:09:15 +0700 |
| commit | 0947ee08631bd083f25a7b428fadcb087dc84f3a (patch) | |
| tree | 6247af7331752550a8ff58b0f8df35c5a722dd31 | |
| parent | 23138d96a7ea679b28de99a7c520d5bf511dc84c (diff) | |
| download | beku-0947ee08631bd083f25a7b428fadcb087dc84f3a.tar.xz | |
package.gitClone: return error if destination directory is not empty
| -rw-r--r-- | beku.go | 1 | ||||
| -rw-r--r-- | package_git.go | 7 |
2 files changed, 8 insertions, 0 deletions
@@ -54,6 +54,7 @@ var ( ErrPackageName = errors.New("Empty or invalid package name") errDBPackageName = "missing package name, line %d at %s" + errDirNotEmpty = "directory %s is not empty" ) var ( diff --git a/package_git.go b/package_git.go index 8865ebf..ee46d39 100644 --- a/package_git.go +++ b/package_git.go @@ -32,6 +32,7 @@ func (pkg *Package) gitCheckoutVersion(version string) (err error) { // // gitClone the package into "$GOPATH/src/{ImportPath}". +// If destination directory is not empty it will return an error. // func (pkg *Package) gitClone() (err error) { err = os.MkdirAll(pkg.FullPath, 0700) @@ -40,6 +41,12 @@ func (pkg *Package) gitClone() (err error) { return } + empty := IsDirEmpty(pkg.FullPath) + if !empty { + err = fmt.Errorf("gitClone: "+errDirNotEmpty, pkg.FullPath) + return + } + //nolint:gas cmd := exec.Command("git", "clone", pkg.RemoteURL, ".") fmt.Println(">>>", cmd.Args) |
