diff options
| author | Shulhan <ms@kilabit.info> | 2018-05-19 02:39:09 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2018-05-19 02:39:09 +0700 |
| commit | c3daaebcaa04c7e9e7970f80e01046630bc12ed9 (patch) | |
| tree | e1e77361d565eea6f12922fe3cc57489d49b589f /package_git.go | |
| parent | c95d7d0b4f557b531cf58d3b8029d6fd33d85fde (diff) | |
| download | beku-c3daaebcaa04c7e9e7970f80e01046630bc12ed9.tar.xz | |
[test] package: add unit test for String, Update, and UpdateMissingDep
Diffstat (limited to 'package_git.go')
| -rw-r--r-- | package_git.go | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/package_git.go b/package_git.go index 0aac349..1f4c1a0 100644 --- a/package_git.go +++ b/package_git.go @@ -4,7 +4,6 @@ import ( "bytes" "fmt" "log" - "os" "os/exec" "github.com/shuLhan/share/lib/ini" @@ -118,21 +117,27 @@ func (pkg *Package) gitGetTagLatest() (tag string, err error) { return } +// +// gitRemoteChange current package remote name (e.g. "origin") or URL to new +// package remote-name or url. +// func (pkg *Package) gitRemoteChange(newPkg *Package) (err error) { + fmt.Println(">>> git remote remove", pkg.RemoteName) cmd := exec.Command("git", "remote", "remove", pkg.RemoteName) cmd.Dir = pkg.FullPath - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr + cmd.Stdout = defStdout + cmd.Stderr = defStderr err = cmd.Run() if err != nil { log.Println("gitRemoteChange:", err) } + fmt.Println(">>> git remote add", newPkg.RemoteName, newPkg.RemoteURL) cmd = exec.Command("git", "remote", "add", newPkg.RemoteName, newPkg.RemoteURL) cmd.Dir = pkg.FullPath - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr + cmd.Stdout = defStdout + cmd.Stderr = defStderr err = cmd.Run() if err != nil { @@ -199,6 +204,10 @@ func (pkg *Package) gitScanVersion() (version string, err error) { return } +// +// gitUpdate will change the currrent package remote name, URL, or version +// based on new package information. +// func (pkg *Package) gitUpdate(newPkg *Package) (err error) { if pkg.RemoteName != newPkg.RemoteName || pkg.RemoteURL != newPkg.RemoteURL { err = pkg.gitRemoteChange(newPkg) @@ -207,10 +216,15 @@ func (pkg *Package) gitUpdate(newPkg *Package) (err error) { } } + if pkg.Version == newPkg.Version { + return + } + + fmt.Println(">>> git checkout -q", newPkg.Version) cmd := exec.Command("git", "checkout", "-q", newPkg.Version) cmd.Dir = newPkg.FullPath - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr + cmd.Stdout = defStdout + cmd.Stderr = defStderr err = cmd.Run() if err != nil { |
