self-update: Check current version before download

This commit is contained in:
Alexander Neumann
2018-10-14 17:29:46 +02:00
parent 7d0f2eaf24
commit a432b42c81
2 changed files with 10 additions and 3 deletions

View File

@@ -106,7 +106,7 @@ func extractToFile(buf []byte, filename, target string, printf func(string, ...i
// DownloadLatestStableRelease downloads the latest stable released version of
// restic and saves it to target. It returns the version string for the newest
// version. The function printf is used to print progress information.
func DownloadLatestStableRelease(ctx context.Context, target string, printf func(string, ...interface{})) (version string, err error) {
func DownloadLatestStableRelease(ctx context.Context, target, currentVersion string, printf func(string, ...interface{})) (version string, err error) {
if printf == nil {
printf = func(string, ...interface{}) {}
}
@@ -118,6 +118,11 @@ func DownloadLatestStableRelease(ctx context.Context, target string, printf func
return "", err
}
if rel.Version == currentVersion {
printf("restic is up to date\n")
return currentVersion, nil
}
printf("latest version is %v\n", rel.Version)
_, sha256sums, err := getGithubDataFile(ctx, rel.Assets, "SHA256SUMS", printf)