From 9542d14473bf9b0263f000a0b5b5b81df7c40964 Mon Sep 17 00:00:00 2001 From: sawka Date: Tue, 16 Aug 2022 16:26:06 -0700 Subject: [PATCH] make mshell home directory during getremoteid --- pkg/base/base.go | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/pkg/base/base.go b/pkg/base/base.go index 1f848e53..c14736d5 100644 --- a/pkg/base/base.go +++ b/pkg/base/base.go @@ -198,7 +198,7 @@ func EnsureSessionDir(sessionId string) (string, error) { if errors.Is(err, fs.ErrNotExist) { err = os.MkdirAll(sdir, 0777) if err != nil { - return "", err + return "", fmt.Errorf("cannot make mshell session directory[%s]: %w", sdir, err) } info, err = os.Stat(sdir) } @@ -254,6 +254,20 @@ func GoArchOptFile(goos string, goarch string) string { func GetRemoteId() (string, error) { mhome := GetMShellHomeDir() + homeInfo, err := os.Stat(mhome) + if errors.Is(err, fs.ErrNotExist) { + err = os.MkdirAll(mhome, 0777) + if err != nil { + return "", fmt.Errorf("cannot make mshell home directory[%s]: %w", mhome, err) + } + homeInfo, err = os.Stat(mhome) + } + if err != nil { + return "", fmt.Errorf("cannot stat mshell home directory[%s]: %w", mhome, err) + } + if !homeInfo.IsDir() { + return "", fmt.Errorf("mshell home directory[%s] is not a directory", mhome) + } remoteIdFile := path.Join(mhome, RemoteIdFile) fd, err := os.Open(remoteIdFile) if errors.Is(err, fs.ErrNotExist) {