forked from TrueCloudLab/restic
self-update: Check current version before download
This commit is contained in:
parent
7d0f2eaf24
commit
a432b42c81
2 changed files with 10 additions and 3 deletions
|
@ -60,12 +60,14 @@ func runSelfUpdate(opts SelfUpdateOptions, gopts GlobalOptions, args []string) e
|
||||||
|
|
||||||
Printf("writing restic to %v\n", opts.Output)
|
Printf("writing restic to %v\n", opts.Output)
|
||||||
|
|
||||||
v, err := selfupdate.DownloadLatestStableRelease(gopts.ctx, opts.Output, Verbosef)
|
v, err := selfupdate.DownloadLatestStableRelease(gopts.ctx, opts.Output, version, Verbosef)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Fatalf("unable to update restic: %v", err)
|
return errors.Fatalf("unable to update restic: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
Printf("successfully updated restic to version %v\n", v)
|
if v != version {
|
||||||
|
Printf("successfully updated restic to version %v\n", v)
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,7 +106,7 @@ func extractToFile(buf []byte, filename, target string, printf func(string, ...i
|
||||||
// DownloadLatestStableRelease downloads the latest stable released version of
|
// DownloadLatestStableRelease downloads the latest stable released version of
|
||||||
// restic and saves it to target. It returns the version string for the newest
|
// restic and saves it to target. It returns the version string for the newest
|
||||||
// version. The function printf is used to print progress information.
|
// 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 {
|
if printf == nil {
|
||||||
printf = func(string, ...interface{}) {}
|
printf = func(string, ...interface{}) {}
|
||||||
}
|
}
|
||||||
|
@ -118,6 +118,11 @@ func DownloadLatestStableRelease(ctx context.Context, target string, printf func
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if rel.Version == currentVersion {
|
||||||
|
printf("restic is up to date\n")
|
||||||
|
return currentVersion, nil
|
||||||
|
}
|
||||||
|
|
||||||
printf("latest version is %v\n", rel.Version)
|
printf("latest version is %v\n", rel.Version)
|
||||||
|
|
||||||
_, sha256sums, err := getGithubDataFile(ctx, rel.Assets, "SHA256SUMS", printf)
|
_, sha256sums, err := getGithubDataFile(ctx, rel.Assets, "SHA256SUMS", printf)
|
||||||
|
|
Loading…
Reference in a new issue