abiosoft / ishell

Library for creating interactive cli applications.
MIT License
1.69k stars 196 forks source link

Multiple Choice #82

Open ryangurn opened 6 years ago

ryangurn commented 6 years ago

When attempting to use the mutiple choice option, I get the following panic. Please let me know what other information would help assist in getting this fixed moving forward, I will also look into the code to see if there is anything I can do to fix it and submit a PR if I figure something out.

func Test(c *ishell.Context) {
    choice := c.MultiChoice([]string{
        "Golangers",
        "Go programmers",
        "Gophers",
        "Goers",
    }, "What are Go programmers called ?")
    if choice == 2 {
        c.Println("You got it!")
    } else {
        c.Println("Sorry, you're wrong.")
    }
}
panic: runtime error: index out of range

goroutine 1 [running]:
gopkg.in/abiosoft/ishell%2ev2.(*shellActionsImpl).MultiChoice(0xc042004528, 0xc04213e2c0, 0x4, 0x4, 0x6f6916, 0x20, 0x0)
        C:/Users/Ryan Gurnick/Documents/Go/src/gopkg.in/abiosoft/ishell.v2/actions.go:121 +0xb9
saiberAdmin/core/api.Test(0xc042166000)
        C:/Users/Ryan Gurnick/Documents/Go/src/saiberAdmin/core/api/delete.go:22 +0xb8
saiberAdmin/core/io.Shell.func5(0xc042166000)
        C:/Users/Ryan Gurnick/Documents/Go/src/saiberAdmin/core/io/io.go:63 +0x32
gopkg.in/abiosoft/ishell%2ev2.(*Shell).handleCommand(0xc042132000, 0xc0421440d0, 0x1, 0x1, 0xc04207dda0, 0xc04207dda8, 0x20)
        C:/Users/Ryan Gurnick/Documents/Go/src/gopkg.in/abiosoft/ishell.v2/ishell.go:248 +0x2d3
gopkg.in/abiosoft/ishell%2ev2.handleInput(0xc042132000, 0xc0421440d0, 0x1, 0x1, 0xc04204bac0, 0xc042056540)
        C:/Users/Ryan Gurnick/Documents/Go/src/gopkg.in/abiosoft/ishell.v2/ishell.go:202 +0x54
gopkg.in/abiosoft/ishell%2ev2.(*Shell).run(0xc042132000)
        C:/Users/Ryan Gurnick/Documents/Go/src/gopkg.in/abiosoft/ishell.v2/ishell.go:181 +0x22f
gopkg.in/abiosoft/ishell%2ev2.(*Shell).Run(0xc042132000)
        C:/Users/Ryan Gurnick/Documents/Go/src/gopkg.in/abiosoft/ishell.v2/ishell.go:97 +0x40
saiberAdmin/core/io.Shell()
        C:/Users/Ryan Gurnick/Documents/Go/src/saiberAdmin/core/io/io.go:68 +0x455
main.main()
        C:/Users/Ryan Gurnick/Documents/Go/src/saiberAdmin/main.go:11 +0x2c
exit status 2
ivanduka commented 2 years ago

I have the same problem and surprised that this issue goes back to 2018. I wonder whether the project is still maintained or abandoned...