Skip to content

Commit a44ee15

Browse files
committed
Merge remote-tracking branch 'kiracore/feature/bootstap_bin_versions' into feature/tx_send
2 parents f9d4519 + 8b2e88b commit a44ee15

File tree

6 files changed

+73
-17
lines changed

6 files changed

+73
-17
lines changed

Diff for: go.mod

+6-3
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ require (
88
github.com/cosmos/go-bip39 v1.0.0
99
github.com/fyne-io/terminal v0.0.0-20240422094903-6a6996b84c7e
1010
github.com/kiracore/tools/bip39gen v0.0.0-20240502110212-fd9aae04a1a7
11-
golang.org/x/crypto v0.23.0
11+
github.com/pkg/sftp v1.10.1
12+
golang.org/x/crypto v0.24.0
1213
)
1314

1415
require (
@@ -30,6 +31,8 @@ require (
3031
github.com/gopherjs/gopherjs v1.17.2 // indirect
3132
github.com/inconshreveable/mousetrap v1.0.1 // indirect
3233
github.com/jsummers/gobmp v0.0.0-20151104160322-e2ba15ffa76e // indirect
34+
github.com/kr/fs v0.1.0 // indirect
35+
github.com/pkg/errors v0.8.1 // indirect
3336
github.com/pmezard/go-difflib v1.0.0 // indirect
3437
github.com/spf13/cobra v1.6.1 // indirect
3538
github.com/spf13/pflag v1.0.5 // indirect
@@ -41,8 +44,8 @@ require (
4144
golang.org/x/image v0.16.0 // indirect
4245
golang.org/x/mobile v0.0.0-20230531173138-3c911d8e3eda // indirect
4346
golang.org/x/net v0.25.0 // indirect
44-
golang.org/x/sys v0.20.0 // indirect
45-
golang.org/x/text v0.15.0 // indirect
47+
golang.org/x/sys v0.21.0 // indirect
48+
golang.org/x/text v0.16.0 // indirect
4649
gopkg.in/yaml.v3 v3.0.1 // indirect
4750
honnef.co/go/js/dom v0.0.0-20210725211120-f030747120f2 // indirect
4851
)

Diff for: go.sum

+11-8
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,7 @@ github.com/kiracore/tools/bip39gen v0.0.0-20240502110212-fd9aae04a1a7 h1:xQxPyeQ
223223
github.com/kiracore/tools/bip39gen v0.0.0-20240502110212-fd9aae04a1a7/go.mod h1:AvRV4iiU7iYB0kZ6fkviLCdP9zi6xbClPx2+Ivijuq0=
224224
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
225225
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
226+
github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8=
226227
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
227228
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
228229
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
@@ -249,9 +250,11 @@ github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWb
249250
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
250251
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
251252
github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
253+
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
252254
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
253255
github.com/pkg/profile v1.7.0 h1:hnbDkaNWPCLMO9wGLdBFTIZvzDrDfBM2072E1S9gJkA=
254256
github.com/pkg/profile v1.7.0/go.mod h1:8Uer0jas47ZQMJ7VD+OHknK4YDY07LPUC6dEvqDjvNo=
257+
github.com/pkg/sftp v1.10.1 h1:VasscCm72135zRysgrJDKsntdmPN+OuU3+nnHYA9wyc=
255258
github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI=
256259
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
257260
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
@@ -325,8 +328,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U
325328
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
326329
golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
327330
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
328-
golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI=
329-
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
331+
golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI=
332+
golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM=
330333
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
331334
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
332335
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -477,11 +480,11 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc
477480
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
478481
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
479482
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
480-
golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
481-
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
483+
golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws=
484+
golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
482485
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
483-
golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw=
484-
golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY=
486+
golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA=
487+
golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0=
485488
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
486489
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
487490
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -490,8 +493,8 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
490493
golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
491494
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
492495
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
493-
golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk=
494-
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
496+
golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
497+
golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
495498
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
496499
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
497500
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=

Diff for: gui/dialog_deploy.go

+28-3
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"encoding/json"
55
"fmt"
66
"log"
7+
"path/filepath"
78
"strconv"
89
"time"
910

@@ -13,6 +14,7 @@ import (
1314
"fyne.io/fyne/v2/theme"
1415
"fyne.io/fyne/v2/widget"
1516
dialogWizard "github.com/KiraCore/kensho/gui/dialogs"
17+
"github.com/KiraCore/kensho/helper/gssh"
1618
"github.com/KiraCore/kensho/helper/httph"
1719
"github.com/KiraCore/kensho/types"
1820
)
@@ -142,12 +144,35 @@ func showDeployDialog(g *Gui, doneListener binding.DataListener, shidaiInfra bin
142144
return
143145
}
144146

145-
// cmdForDeploy := fmt.Sprintf(`echo '%v' | sudo -S sh -c "$(curl -s --show-error --fail %v 2>&1 )"`, sP, types.BOOTSTRAP_SCRIPT)
147+
bootstrapFileUrl := types.BOOTSTRAP_SCRIPT
148+
filePathToSaveOnRemote := filepath.Join("/home/", g.sshClient.User(), "bootstrap.sh")
149+
log.Println("Bootstrap file save path:", filePathToSaveOnRemote)
150+
f, err := httph.MakeHttpRequest(bootstrapFileUrl, "GET")
151+
if err != nil {
152+
log.Println(err.Error())
153+
g.showErrorDialog(fmt.Errorf("error when downloading bootstrap script: %v ", err.Error()), binding.NewDataListener(func() {}))
154+
return
155+
}
156+
err = gssh.SendFileSFTP(g.sshClient, f, filePathToSaveOnRemote)
157+
if err != nil {
158+
log.Println(err.Error())
159+
g.showErrorDialog(fmt.Errorf("error when sending bootstrap script to remove host: %v ", err.Error()), binding.NewDataListener(func() {}))
160+
return
161+
}
162+
163+
cmdForChmod := fmt.Sprintf(`chmod +x %v 2>&1`, filePathToSaveOnRemote)
164+
showCmdExecDialogAndRunCmdV4(g, "Deploying", cmdForChmod, true, deployErrorBinding, errorMessageBinding)
165+
errB, _ := deployErrorBinding.Get()
166+
if errB {
167+
errMsg, _ := errorMessageBinding.Get()
168+
g.showErrorDialog(fmt.Errorf("error while checking the sudo password: %v ", errMsg), binding.NewDataListener(func() {}))
169+
return
170+
}
146171

147-
cmdForDeploy := fmt.Sprintf(`echo '%v' | sudo -S sh -c "$(curl -s --show-error --fail %v 2>&1 --sekai=%v --interx=%v)"`, sP, types.BOOTSTRAP_SCRIPT, sekaiVersion, interxVersion)
172+
cmdForDeploy := fmt.Sprintf(`echo '%v' | sudo -S sh -c "%v --sekai=%v --interx=%v 2>&1"`, sP, filePathToSaveOnRemote, sekaiVersion, interxVersion)
148173
showCmdExecDialogAndRunCmdV4(g, "Deploying", cmdForDeploy, true, deployErrorBinding, errorMessageBinding)
149174

150-
errB, _ := deployErrorBinding.Get()
175+
errB, _ = deployErrorBinding.Get()
151176
if errB {
152177
errMsg, _ := errorMessageBinding.Get()
153178
g.showErrorDialog(fmt.Errorf("error while checking the sudo password: %v ", errMsg), binding.NewDataListener(func() {}))

Diff for: gui/screen_networkVisor.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,7 @@ func makeNetworkTreeScreen(_ fyne.Window, g *Gui) fyne.CanvasObject {
7070
nodes, _, err = networkparser.GetAllNodesV3(context.Background(), g.Host.IP, 3, false)
7171

7272
// TODO: for testing
73-
nodes, _, err = networkparser.GetAllNodesV3(context.Background(), "148.251.69.56", 4, false)
74-
// nodes, _, err = networkparser.GetAllNodesV3(context.Background(), "148.251.69.561", 4, false)
73+
// nodes, _, err = networkparser.GetAllNodesV3(context.Background(), "148.251.69.56", 4, false)
7574
//
7675
if err != nil {
7776
log.Println(err)

Diff for: gui/screen_status.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,12 @@ func makeStatusScreen(_ fyne.Window, g *Gui) fyne.CanvasObject {
7777
log.Printf("ERROR: %v", err)
7878
shidaiStatusInfo.SetText(STATUS_Unavailable)
7979
shidaiStatusCheck.Set(false)
80+
shidaiInfraCheck.Set(false)
8081

8182
} else {
8283
log.Println("switching shidai state")
8384
shidaiStatusInfo.SetText(STATUS_Running)
84-
shidaiInfraCheck.Set(shidaiStatus.Shidai.Infra)
85+
shidaiInfraCheck.Set(true)
8586
sekaiInfraCheck.Set(shidaiStatus.Sekai.Infra)
8687
interxInfraCheck.Set(shidaiStatus.Interx.Infra)
8788
shidaiStatusCheck.Set(true)

Diff for: helper/gssh/gssh.go

+25
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"log"
99
"sync"
1010

11+
"github.com/pkg/sftp"
1112
"golang.org/x/crypto/ssh"
1213
)
1314

@@ -245,3 +246,27 @@ func MakeSSHsessionForTerminalV2(client *ssh.Client) (*ssh.Session, error) {
245246

246247
return session, nil
247248
}
249+
250+
func SendFileSFTP(client *ssh.Client, fileData []byte, remotePath string) error {
251+
// Start an SFTP session over the existing SSH connection
252+
sftpClient, err := sftp.NewClient(client)
253+
if err != nil {
254+
return fmt.Errorf("failed to create SFTP client: %v", err)
255+
}
256+
defer sftpClient.Close()
257+
// client.User()
258+
// client.
259+
// Create the remote file
260+
file, err := sftpClient.Create(remotePath)
261+
if err != nil {
262+
return fmt.Errorf("failed to create remote file: %v", err)
263+
}
264+
defer file.Close()
265+
266+
// Write data to the remote file
267+
if _, err := file.Write(fileData); err != nil {
268+
return fmt.Errorf("failed to write data to remote file: %v", err)
269+
}
270+
271+
return nil
272+
}

0 commit comments

Comments
 (0)