diff options
Diffstat (limited to 'cmd/dolmetschctld/telnet.go')
-rw-r--r-- | cmd/dolmetschctld/telnet.go | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/cmd/dolmetschctld/telnet.go b/cmd/dolmetschctld/telnet.go new file mode 100644 index 0000000..d2f7fc3 --- /dev/null +++ b/cmd/dolmetschctld/telnet.go @@ -0,0 +1,68 @@ +// +// dolmetschctl +// +// +// Copyright (C) 2019 Christian Pointner <equinox@spreadspace.org> +// +// This file is part of dolmetschctl. +// +// dolmetschctl is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// any later version. +// +// dolmetschctl is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with dolmetschctl. If not, see <http://www.gnu.org/licenses/>. +// + +package main + +import ( + "fmt" + + "github.com/spreadspace/telgo" +) + +type TelnetInterface struct { + server *telgo.Server +} + +func telnetCmdLang(c *telgo.Client, args []string, sm *StateMachine) bool { + if len(args) != 2 { + c.Sayln("usage: lang <language>") + return false + } + lang := args[1] + if lang == "none" { + lang = "" + } + if err := sm.SelectLanguage(Language(lang)); err != nil { + c.Sayln(fmt.Sprintf("selecting language failed: %v", err)) + } + return false +} + +func telnetQuit(c *telgo.Client, args []string) bool { + return true +} + +func (telnet *TelnetInterface) Run() error { + return telnet.server.Run() +} + +func NewTelnetInterface(addr string, sm *StateMachine) (telnet *TelnetInterface, err error) { + telnet = &TelnetInterface{} + + cmdlist := make(telgo.CmdList) + cmdlist["lang"] = func(c *telgo.Client, args []string) bool { return telnetCmdLang(c, args, sm) } + cmdlist["quit"] = telnetQuit + + telnet.server, err = telgo.NewServer(addr, "dolmetschctl> ", cmdlist, nil) + + return +} |