X-Git-Url: https://ruderich.org/simon/gitweb/?p=safcm%2Fsafcm.git;a=blobdiff_plain;f=rpc%2Fdial.go;h=c098714cc0759388dd32e0d723819c4b4c598665;hp=c0c6cd4088b2859d758aa0d06cf64405a2b70a16;hb=fd97e8019e2ab166d9475ed59782c86247d8430b;hpb=9d0d090fc1d683accc8bd1b354425c23cbe9fb6a diff --git a/rpc/dial.go b/rpc/dial.go index c0c6cd4..c098714 100644 --- a/rpc/dial.go +++ b/rpc/dial.go @@ -24,18 +24,20 @@ import ( "encoding/hex" "fmt" "io" + "io/fs" "os/exec" "strconv" "strings" "ruderich.org/simon/safcm" - "ruderich.org/simon/safcm/remote" ) type SSHConfig struct { Host string User string // optional SshConfig string // optional + + RemoteHelpers fs.FS } func (c *Conn) DialSSH(cfg SSHConfig) error { @@ -43,6 +45,11 @@ func (c *Conn) DialSSH(cfg SSHConfig) error { return fmt.Errorf("cannot reuse Conn") } + if cfg.RemoteHelpers == nil { + return fmt.Errorf("SSHConfig.RemoteHelpers not set") + } + c.remoteHelpers = cfg.RemoteHelpers + remote := cfg.Host if cfg.User != "" { remote = cfg.User + "@" + cfg.Host @@ -208,9 +215,9 @@ f return err } - // Get embedded helper binary - helper, err := remote.Helpers.ReadFile( - fmt.Sprintf("helpers/%s-%s", goos, goarch)) + // Get remote helper binary + helper, err := fs.ReadFile(c.remoteHelpers, + fmt.Sprintf("%s-%s", goos, goarch)) if err != nil { return fmt.Errorf("remote not built for GOOS/GOARCH %s/%s", goos, goarch)