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
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
|
|
}
|