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 }