self-update: Use correct path to restic binary

Closes #2041
This commit is contained in:
Alexander Neumann 2018-10-14 17:29:19 +02:00
parent 41a4d67d93
commit 7d0f2eaf24
1 changed files with 22 additions and 2 deletions

View File

@ -1,4 +1,4 @@
// +build selfupdate
// xbuild selfupdate
package main
@ -36,10 +36,30 @@ func init() {
cmdRoot.AddCommand(cmdSelfUpdate)
flags := cmdSelfUpdate.Flags()
flags.StringVar(&selfUpdateOptions.Output, "output", os.Args[0], "Save the downloaded file as `filename`")
flags.StringVar(&selfUpdateOptions.Output, "output", "", "Save the downloaded file as `filename` (default: running binary itself)")
}
func runSelfUpdate(opts SelfUpdateOptions, gopts GlobalOptions, args []string) error {
if opts.Output == "" {
file, err := os.Executable()
if err != nil {
return errors.Wrap(err, "unable to find executable")
}
opts.Output = file
}
fi, err := os.Lstat(opts.Output)
if err != nil {
return err
}
if !fi.Mode().IsRegular() {
return errors.Errorf("output file %v is not a normal file, use --output to specify a different file", opts.Output)
}
Printf("writing restic to %v\n", opts.Output)
v, err := selfupdate.DownloadLatestStableRelease(gopts.ctx, opts.Output, Verbosef)
if err != nil {
return errors.Fatalf("unable to update restic: %v", err)