Commit 5a3ec693 authored by szh's avatar szh

path + /

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