Have a look at:

https://github.com/chzyer/readline
https://github.com/chzyer/readline/blob/master/example/readline-demo/readline-demo.go


On Tuesday, 17 December 2019 09:10:28 UTC-5, Rich wrote:
>
> I need to write a program that runs an external program and the user needs 
> to interact with that external program.  So I know I can do something like 
> this:
>
>
> func main() {
> cmd := exec.Command("/usr/local/bin/interactiveApp")
> cmd.Stdin = os.Stdin
> cmd.Stdout = os.Stdout
> cmd.Stderr = os.Stderr
> cmd.Run()
>
> What I need to be able to do is look at what the user is typing as the 
> user can make some errors that would be unfortunate, So what I want to do 
> is look at what the user typed and tell them that isn't possible. If the 
> command is good send it.
>
> User: "self destruct in 10 minutes"
> MyApp: "sorry you can't do that."
>
> This is very similar to what you can do with Don Libes's Expect interact 
> statement which works like a switch statement, if a match is found, it runs 
> that instead of what the user typed. 
>
> spawn "/usr/local/bin/interactiveApp"
> ...stuff...
>
> interact {
> "self destruct" {
> send_user "Sorry you can't run that"
> send "start over"
> }
> }
>  
> So if the user types "self destruct" the program will send a message to 
> the user, and then send 'start over' to the interactiveApp.    I've looked 
> around and I've not seen anything that can reliably read from what the user 
> types in, evaluate it,  and pass it to the program that is launched by exec.
>
> I didn't write the app we're  running, and the guy that wrote it is not 
> able to support it any longer. I"d write it in expect but expect uses TCL 
> which is very very slow, and there are other aspects to Go that I really 
> need in other areas of the program.
>
> Thanks! 
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/45bbd65c-7b5e-4907-aabf-d8c0065401e7%40googlegroups.com.

Reply via email to