aboutsummaryrefslogtreecommitdiff
path: root/commands.go
diff options
context:
space:
mode:
Diffstat (limited to 'commands.go')
-rw-r--r--commands.go120
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")
- }
-}