You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
899 B
Go

package commands
import (
"fmt"
"log"
"strings"
)
type EchoCommand struct{}
func (c *EchoCommand) Execute(shell *Shell, args []string) error {
if len(args) > 1 {
if "\"`uname -sr`\"" == args[0]+" "+args[1] {
log.Println("Tramp requested uname, returning a fake one: " + fakeUname)
_, err := shell.WriteOutput(
[]byte(
fmt.Sprintf(
"\"%s\"\n%s\n",
fakeUname,
"tramp_exit_status 0",
),
),
)
return err
}
if "\"`tty`\"" == args[0] {
log.Println("Telling tramp that it's dealing with a tty")
_, err := shell.WriteOutputString("\"/dev/pts/0\"\n" + trampSuccess)
return err
}
}
if len(args) > 0 {
if args[0] == "~root" {
log.Println("Telling tramp root's home directory")
_, err := shell.WriteOutputString("/root")
return err
}
}
_, err := shell.WriteOutput([]byte(strings.Join(args, " ") + "\n"))
return err
}