提交 8d3a7772 作者: Jeromy Johnson 提交者: GitHub

Merge pull request #3021 from ipfs/fix/auto-migrate-windows

extract binaries with .exe name on windows
...@@ -25,8 +25,18 @@ func init() { ...@@ -25,8 +25,18 @@ func init() {
const migrations = "fs-repo-migrations" const migrations = "fs-repo-migrations"
func migrationsBinName() string {
switch runtime.GOOS {
case "windows":
return migrations + ".exe"
default:
return migrations
}
}
func RunMigration(newv int) error { func RunMigration(newv int) error {
migrateBin := "fs-repo-migrations" migrateBin := migrationsBinName()
fmt.Println(" => checking for migrations binary...") fmt.Println(" => checking for migrations binary...")
var err error var err error
...@@ -78,7 +88,7 @@ func GetMigrations() (string, error) { ...@@ -78,7 +88,7 @@ func GetMigrations() (string, error) {
return "", fmt.Errorf("tempdir: %s", err) return "", fmt.Errorf("tempdir: %s", err)
} }
out := filepath.Join(dir, migrations) out := filepath.Join(dir, migrationsBinName())
err = GetBinaryForVersion(migrations, migrations, DistPath, latest, out) err = GetBinaryForVersion(migrations, migrations, DistPath, latest, out)
if err != nil { if err != nil {
...@@ -202,6 +212,7 @@ func GetBinaryForVersion(distname, binnom, root, vers, out string) error { ...@@ -202,6 +212,7 @@ func GetBinaryForVersion(distname, binnom, root, vers, out string) error {
switch runtime.GOOS { switch runtime.GOOS {
case "windows": case "windows":
archive = "zip" archive = "zip"
binnom += ".exe"
default: default:
archive = "tar.gz" archive = "tar.gz"
} }
......
...@@ -87,7 +87,7 @@ func unpackZip(dist, binnom, path, out string) error { ...@@ -87,7 +87,7 @@ func unpackZip(dist, binnom, path, out string) error {
var bin io.ReadCloser var bin io.ReadCloser
for _, fis := range zipr.File { for _, fis := range zipr.File {
if fis.Name == dist+"/"+binnom+".exe" { if fis.Name == dist+"/"+binnom {
rc, err := fis.Open() rc, err := fis.Open()
if err != nil { if err != nil {
return fmt.Errorf("error extracting binary from archive: %s", err) return fmt.Errorf("error extracting binary from archive: %s", err)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论