From d5d99787446653b8ad42e4ef7f685841b84d0255 Mon Sep 17 00:00:00 2001 From: Shulhan Date: Mon, 12 Apr 2021 02:27:39 +0700 Subject: all: use consistent log prefix on command's methods --- command.go | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/command.go b/command.go index b1b14cb..0496e5f 100644 --- a/command.go +++ b/command.go @@ -229,13 +229,14 @@ func (cmd *Command) get(stmt []byte) (err error) { // #get! // func (cmd *Command) sudoGet(stmt []byte) (err error) { + logp := "sudoGet" stmt = bytes.TrimSpace(stmt[5:]) paths := bytes.Fields(stmt) if len(paths) != 2 { - err = fmt.Errorf("invalid get! statement: %q", stmt) + err = fmt.Errorf("%s: invalid statement: %q", logp, stmt) log.Println(err) - return + return err } remoteSrc := string(paths[0]) @@ -248,14 +249,14 @@ func (cmd *Command) sudoGet(stmt []byte) (err error) { err = cmd.sshClient.Execute(cpRemoteToTmp) if err != nil { - return fmt.Errorf("sudoGet %q: %w", cpRemoteToTmp, err) + return fmt.Errorf("%s: %w", logp, err) } chmod := fmt.Sprintf("sudo chown %s %s", cmd.env.SSHUser, remoteTmp) err = cmd.sshClient.Execute(chmod) if err != nil { - return fmt.Errorf("sudoGet %q: %w", chmod, err) + return fmt.Errorf("%s: %w", logp, err) } return cmd.sshClient.Get(remoteTmp, local) @@ -475,23 +476,32 @@ func (cmd *Command) executeScript() { } func (cmd *Command) initSSHClient() (err error) { - sshSection := cmd.env.sshConfig.Get(cmd.env.hostname) + var ( + logp = "initSSHClient" + sshSection *ssh.ConfigSection + lastIdentFile string + ) + + sshSection = cmd.env.sshConfig.Get(cmd.env.hostname) if sshSection == nil { - return fmt.Errorf("cmd: can not find Host %q in SSH config", - cmd.env.hostname) + return fmt.Errorf("%s: can not find Host %q in SSH config", + logp, cmd.env.hostname) + } + if len(sshSection.IdentityFile) > 0 { + lastIdentFile = sshSection.IdentityFile[len(sshSection.IdentityFile)-1] } log.Printf("\nSSH Hostname: %s\n", sshSection.Hostname) log.Printf("SSH Port: %d\n", sshSection.Port) log.Printf("SSH User: %s\n", sshSection.User) - log.Printf("SSH IdentityFile %s\n\n", sshSection.IdentityFile) + log.Printf("SSH IdentityFile %s\n\n", lastIdentFile) cmd.sshClient, err = ssh.NewClient(sshSection) if err != nil { - return fmt.Errorf("cmd: cannot create new SSH client: %w", err) + return fmt.Errorf("%s: %w", logp, err) } - cmd.env.SSHKey = sshSection.IdentityFile[0] + cmd.env.SSHKey = lastIdentFile cmd.env.SSHUser = sshSection.User cmd.env.SSHHost = sshSection.Hostname cmd.env.SSHPort = strconv.Itoa(sshSection.Port) -- cgit v1.3