// // dolmetschctl // // // Copyright (C) 2019 Christian Pointner // // 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 . // 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 ") 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 }