mirror of https://github.com/Rudi9719/kbtui.git
4 changed files with 65 additions and 1 deletions
@ -0,0 +1,55 @@ |
|||||||
|
// +build !rm_basic_commands allcommands execcmd
|
||||||
|
|
||||||
|
package main |
||||||
|
|
||||||
|
import ( |
||||||
|
"fmt" |
||||||
|
"strings" |
||||||
|
) |
||||||
|
|
||||||
|
func init() { |
||||||
|
command := Command{ |
||||||
|
Cmd: []string{"exec", "ex"}, |
||||||
|
Description: "$keybase args - executes keybase $args and returns the output", |
||||||
|
Help: "", |
||||||
|
Exec: cmdExec, |
||||||
|
} |
||||||
|
RegisterCommand(command) |
||||||
|
} |
||||||
|
|
||||||
|
func cmdExec(cmd []string) { |
||||||
|
l := len(cmd) |
||||||
|
switch { |
||||||
|
case l >= 2: |
||||||
|
if cmd[1] == "keybase" { |
||||||
|
// if the user types /exec keybase wallet list
|
||||||
|
// only send ["wallet", "list"]
|
||||||
|
runKeybaseExec(cmd[2:]) |
||||||
|
} else { |
||||||
|
// send everything except the command
|
||||||
|
runKeybaseExec(cmd[1:]) |
||||||
|
} |
||||||
|
case l == 1: |
||||||
|
fallthrough |
||||||
|
default: |
||||||
|
printExecHelp() |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
func runKeybaseExec(args []string) { |
||||||
|
outputBytes, err := k.Exec(args...) |
||||||
|
if err != nil { |
||||||
|
printToView("Feed", fmt.Sprintf("Exec error: %+v", err)) |
||||||
|
} else { |
||||||
|
channel.Name = "" |
||||||
|
// unjoin the chat
|
||||||
|
clearView("Chat") |
||||||
|
setViewTitle("Input", fmt.Sprintf(" /exec %s ", strings.Join(args, " "))) |
||||||
|
output := string(outputBytes) |
||||||
|
printToView("Chat", fmt.Sprintf("%s", output)) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
func printExecHelp() { |
||||||
|
printInfo(fmt.Sprintf("To execute a keybase command use %sexec <keybase args>", config.Basics.CmdPrefix)) |
||||||
|
} |
Loading…
Reference in new issue