46 lines
692 B
Go
46 lines
692 B
Go
package gluaquestion
|
|
|
|
import (
|
|
"bufio"
|
|
"fmt"
|
|
"os"
|
|
"strings"
|
|
|
|
"github.com/howeyc/gopass"
|
|
"github.com/yuin/gopher-lua"
|
|
)
|
|
|
|
// Loader is glua module loader.
|
|
func Loader(L *lua.LState) int {
|
|
tb := L.NewTable()
|
|
L.SetFuncs(tb, map[string]lua.LGFunction{
|
|
"ask": ask,
|
|
"secret": secret,
|
|
})
|
|
L.Push(tb)
|
|
|
|
return 1
|
|
}
|
|
|
|
func ask(L *lua.LState) int {
|
|
msg := L.CheckString(1)
|
|
|
|
fmt.Printf(msg)
|
|
reader := bufio.NewReader(os.Stdin)
|
|
str, _ := reader.ReadString('\n')
|
|
str = strings.TrimRight(str, "\r\n")
|
|
L.Push(lua.LString(str))
|
|
|
|
return 1
|
|
}
|
|
|
|
func secret(L *lua.LState) int {
|
|
msg := L.CheckString(1)
|
|
|
|
fmt.Printf(msg)
|
|
pass, _ := gopass.GetPasswd()
|
|
L.Push(lua.LString(pass))
|
|
|
|
return 1
|
|
}
|