windows: fix data file update (remove before rename) (#2930)
This commit is contained in:
parent
912c4bca70
commit
2682f801df
1 changed files with 14 additions and 0 deletions
|
@ -4,9 +4,11 @@ import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
|
"io/fs"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"runtime"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
|
@ -65,6 +67,18 @@ func downloadFile(url string, destPath string) error {
|
||||||
// TODO: use a better way to communicate this
|
// TODO: use a better way to communicate this
|
||||||
fmt.Printf("updated %s\n", filepath.Base(destPath))
|
fmt.Printf("updated %s\n", filepath.Base(destPath))
|
||||||
|
|
||||||
|
if runtime.GOOS == "windows" {
|
||||||
|
// On Windows, rename will fail if the destination file already exists
|
||||||
|
// so we remove it first.
|
||||||
|
err = os.Remove(destPath)
|
||||||
|
switch {
|
||||||
|
case errors.Is(err, fs.ErrNotExist):
|
||||||
|
break
|
||||||
|
case err != nil:
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if err = os.Rename(tmpFileName, destPath); err != nil {
|
if err = os.Rename(tmpFileName, destPath); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue