Commit 5a3ec693 authored by szh's avatar szh

path + /

parent 97eb5dd0
......@@ -66,7 +66,7 @@ func UpdateNode(c *gin.Context){
appG.Response(http.StatusOK, e.NODE_ERROR,"node internal error,could not start node")
return
}
absPath := app.GetAbsPath(setting.BityuanSetting.Name)
absPath := app.GetAbsPath(setting.BityuanSetting.Name)+"/"
pwd,err := os.Getwd()
if err != nil {
appG.Response(http.StatusOK, e.ERROR,"get pwd err")
......@@ -98,9 +98,11 @@ func UpdateNode(c *gin.Context){
appG.Response(http.StatusOK,e.NETWORK_ERROR,"network error,please checkout your network then try again")
return
}
stderr := bytes.NewBuffer(nil)
name := setting.BityuanSetting.Name+"_"+latestVersion+".tar.gz"
url := setting.Chain33Pai.DownloadUrl+ name
tlog.Info("UpdateNode","dir",setting.BityuanSetting.Name+"_"+latestVersion)
tlog.Info("UpdateNode","path",absPath)
err = app.DownLoadFile(url,name,int32(1))
if err != nil {
appG.Response(http.StatusOK, e.DOWNLOAD_ERROR, err)
......@@ -110,6 +112,7 @@ func UpdateNode(c *gin.Context){
}
//解压缩文件
tar := exec.Command("tar","-xvf",name)
tar.Stderr = stderr
err = tar.Start()
if err != nil {
tlog.Error("tar","err",err)
......@@ -120,14 +123,15 @@ func UpdateNode(c *gin.Context){
}
err = tar.Wait()
if err != nil {
tlog.Error("tar","err",err)
appG.Response(http.StatusOK, e.TAR_XVF_ERROR, err)
tlog.Error("tar","err",stderr.String())
appG.Response(http.StatusOK, e.TAR_XVF_ERROR, stderr.String())
app.UpdateInfo.Flag = true
app.BityuanFlag = false
return
}
//备份原文件 确保没有alias 关联
bak := exec.Command("cp",absPath+setting.BityuanSetting.Name,absPath+setting.BityuanSetting.Name+".bak")
bak.Stderr = stderr
err = bak.Start()
if err != nil {
tlog.Error("bak","err",err)
......@@ -138,14 +142,15 @@ func UpdateNode(c *gin.Context){
}
err = bak.Wait()
if err != nil {
tlog.Error("bak","err",err)
appG.Response(http.StatusOK, e.CP_ERROR, err)
tlog.Error("bak","err",stderr.String())
appG.Response(http.StatusOK, e.CP_ERROR, stderr.String())
app.UpdateInfo.Flag = true
app.BityuanFlag = false
return
}
//备份配置文件
bakconf := exec.Command("cp",absPath+"bityuan.toml",absPath+"bityuan.toml.bak")
bakconf.Stderr = stderr
err = bakconf.Start()
if err != nil {
tlog.Error("bakconf","err",err)
......@@ -156,8 +161,8 @@ func UpdateNode(c *gin.Context){
}
err = bakconf.Wait()
if err != nil {
tlog.Error("bakconf","err",err)
appG.Response(http.StatusOK, e.CP_ERROR, err)
tlog.Error("bakconf","err",stderr.String())
appG.Response(http.StatusOK, e.CP_ERROR, stderr.String())
app.UpdateInfo.Flag = true
app.BityuanFlag = false
return
......@@ -170,8 +175,7 @@ func UpdateNode(c *gin.Context){
return
}
//替换原执行文件
tlog.Error(setting.BityuanSetting.Name+"_"+latestVersion)
tlog.Error(absPath)
err = os.Chmod(pwd+setting.BityuanSetting.Name+"_"+latestVersion+"/"+setting.BityuanSetting.Name,0755)
if err != nil {
appG.Response(http.StatusOK, e.ERROR, err)
......@@ -187,8 +191,8 @@ func UpdateNode(c *gin.Context){
return
}
mv := exec.Command("mv",pwd+setting.BityuanSetting.Name+"_"+latestVersion+"/"+setting.BityuanSetting.Name,absPath)
mverr := bytes.NewBuffer(nil)
mv.Stderr = mverr
mv.Stderr = stderr
err = mv.Start()
if err != nil {
tlog.Error("mv","err",err)
......@@ -199,15 +203,14 @@ func UpdateNode(c *gin.Context){
}
err = mv.Wait()
if err != nil {
tlog.Error("stderr:","err",mverr.String())
appG.Response(http.StatusOK, e.MV_ERROR, mverr.String())
tlog.Error("stderr:","err",stderr.String())
appG.Response(http.StatusOK, e.MV_ERROR, stderr.String())
app.UpdateInfo.Flag = true
app.BityuanFlag = false
return
}
mv2 := exec.Command("mv",pwd+setting.BityuanSetting.Name+"_"+latestVersion+"/"+setting.BityuanSetting.Name+"-cli",absPath)
mverr2 := bytes.NewBuffer(nil)
mv2.Stderr = mverr2
mv2.Stderr = stderr
err = mv2.Start()
if err != nil {
tlog.Error("mv2","err",err)
......@@ -218,8 +221,8 @@ func UpdateNode(c *gin.Context){
}
err = mv2.Wait()
if err != nil {
tlog.Error("stderr2:","err",mverr2.String())
appG.Response(http.StatusOK, e.MV_ERROR, mverr2.String())
tlog.Error("stderr2:","err",stderr.String())
appG.Response(http.StatusOK, e.MV_ERROR, stderr.String())
app.UpdateInfo.Flag = true
app.BityuanFlag = false
return
......@@ -242,6 +245,7 @@ func UpdateNode(c *gin.Context){
// return
//}
remove := exec.Command("rm","-rf",setting.BityuanSetting.Name+"_"+latestVersion,name)
remove.Stderr = stderr
err = remove.Start()
if err != nil {
appG.Response(http.StatusOK, e.RM_ERROR, err)
......@@ -250,7 +254,7 @@ func UpdateNode(c *gin.Context){
}
err = remove.Wait()
if err != nil {
appG.Response(http.StatusOK, e.RM_ERROR, err)
appG.Response(http.StatusOK, e.RM_ERROR, stderr.String())
app.DPercent.Flag = false
return
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment