diff options
Diffstat (limited to 'commands.go')
-rw-r--r-- | commands.go | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/commands.go b/commands.go deleted file mode 100644 index 9d31614..0000000 --- a/commands.go +++ /dev/null @@ -1,120 +0,0 @@ -package main - -import ( - "fmt" - "os" - "os/exec" - "strings" -) - -type CommandFunc func(args string) - -var poecmds map[string]CommandFunc - -func InitCommands() { - poecmds = map[string]CommandFunc{ - "Exit": CmdExit, - "New": CmdNew, - "Del": CmdDel, - "Edit": CmdEdit, - "Newcol": CmdNewcol, - } -} - -func RunCommand(input string) { - if input == "" { - return - } - - input = strings.Trim(input, "\t\n ") - - // check poe default commands - cmd := strings.Split(string(input), " ") - if fn, ok := poecmds[cmd[0]]; ok { - fn(strings.TrimPrefix(input, cmd[0])) - return - } - - // Edit shortcuts for external commands and piping - switch input[0] { - case '!', '<', '>', '|': - CmdEdit(input) - } - - CmdEdit("!" + input) -} - -func CmdExit(args string) { - ok := true - for _, win := range AllWindows() { - if !win.CanClose() { - ok = false - } - } - if ok { - quit <- true - } -} - -func CmdNewcol(args string) { - screen.Clear() - screen.Sync() - workspace.AddCol() - CmdNew("") -} - -func CmdNew(args string) { - screen.Clear() - win := NewWindow(FnEmptyWin) - workspace.LastCol().AddWindow(win) -} - -func CmdOpen(fn string) { - screen.Clear() - var win *Window - win = FindWindow(fn) - if win == nil { // only load windows that do no already exists - win := NewWindow(fn) - workspace.LastCol().AddWindow(win) - win.LoadBuffer() - } -} - -func CmdDel(args string) { - CurWin.Close() -} - -func CmdEdit(args string) { - if len(args) < 2 { - return - } - - switch args[0] { - case 'f': - var names []string - for _, win := range AllWindows() { - names = append(names, fmt.Sprintf(" %3s %s", win.Flags(), win.Name())) - } - printMsg("buffers:\n%s\n", strings.Join(names, "\n")) - case '!': - os.Chdir(CurWin.Dir()) - cmd := strings.Split(string(args[1:]), " ") - path, err := exec.LookPath(cmd[0]) - if err != nil { // path not found, break with silence - //printMsg("path not found: %s\n", cmd[0]) - break - } - out, err := exec.Command(path, cmd[1:]...).Output() - if err != nil { - printMsg("error: %s\n", err) - break - } - // if command produced output, print it - outstr := string(out) - if outstr != "" { - printMsg("%s", outstr) - } - default: - printMsg("?\n") - } -} |