Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
G
go-ipfs
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
jihao
go-ipfs
Commits
8a8730fa
提交
8a8730fa
authored
7月 10, 2016
作者:
Lars Gierth
提交者:
Jeromy
7月 19, 2016
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
repo: detect OS variant, for now only linux-musl
License: MIT Signed-off-by:
Lars Gierth
<
larsg@systemli.org
>
上级
37673c85
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
36 行增加
和
3 行删除
+36
-3
migrations.go
repo/fsrepo/migrations/migrations.go
+36
-3
没有找到文件。
repo/fsrepo/migrations/migrations.go
浏览文件 @
8a8730fa
...
...
@@ -2,6 +2,7 @@ package mfsr
import
(
"bufio"
"bytes"
"fmt"
"io"
"io/ioutil"
...
...
@@ -44,7 +45,7 @@ func RunMigration(newv int) error {
err
=
verifyMigrationSupportsVersion
(
loc
,
newv
)
if
err
!=
nil
{
return
fmt
.
Errorf
(
"
could not find migrations binary that supports version %d"
,
newv
)
return
fmt
.
Errorf
(
"
no migration binary found that supports version %d - %s"
,
newv
,
err
)
}
migrateBin
=
loc
...
...
@@ -104,7 +105,7 @@ func verifyMigrationSupportsVersion(fsrbin string, vn int) error {
return
nil
}
return
fmt
.
Errorf
(
"migrations binary doesnt support version %d
"
,
v
n
)
return
fmt
.
Errorf
(
"migrations binary doesnt support version %d
: %s"
,
vn
,
fsrbi
n
)
}
func
migrationsVersion
(
bin
string
)
(
int
,
error
)
{
...
...
@@ -204,7 +205,11 @@ func GetBinaryForVersion(distname, binnom, root, vers, out string) error {
default
:
archive
=
"tar.gz"
}
finame
:=
fmt
.
Sprintf
(
"%s_%s_%s-%s.%s"
,
distname
,
vers
,
runtime
.
GOOS
,
runtime
.
GOARCH
,
archive
)
osv
,
err
:=
osWithVariant
()
if
err
!=
nil
{
return
err
}
finame
:=
fmt
.
Sprintf
(
"%s_%s_%s-%s.%s"
,
distname
,
vers
,
osv
,
runtime
.
GOARCH
,
archive
)
distpath
:=
fmt
.
Sprintf
(
"%s/%s/%s/%s"
,
root
,
distname
,
vers
,
finame
)
data
,
err
:=
httpFetch
(
distpath
)
...
...
@@ -226,3 +231,31 @@ func GetBinaryForVersion(distname, binnom, root, vers, out string) error {
return
unpackArchive
(
distname
,
binnom
,
arcpath
,
out
,
archive
)
}
func
osWithVariant
()
(
string
,
error
)
{
if
runtime
.
GOOS
!=
"linux"
{
return
runtime
.
GOOS
,
nil
}
bin
,
err
:=
exec
.
LookPath
(
filepath
.
Base
(
os
.
Args
[
0
]))
if
err
!=
nil
{
return
""
,
fmt
.
Errorf
(
"failed to resolve go-ipfs: %s"
,
err
)
}
cmd
:=
exec
.
Command
(
"ldd"
,
bin
)
buf
:=
new
(
bytes
.
Buffer
)
cmd
.
Stdout
=
buf
err
=
cmd
.
Run
()
if
err
!=
nil
{
return
""
,
fmt
.
Errorf
(
"failed to run ldd: %s"
,
err
)
}
scan
:=
bufio
.
NewScanner
(
buf
)
for
scan
.
Scan
()
{
if
strings
.
Contains
(
scan
.
Text
(),
"libc"
)
&&
strings
.
Contains
(
scan
.
Text
(),
"musl"
)
{
return
"linux-musl"
,
nil
}
}
return
"linux"
,
nil
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论