On Tue, Oct 09, 2018 at 01:46:53PM +0100, Keith wrote:
Hi all, thanks for the replies on this thread.
good to see some other people have considered it, and for pretty much
the same reasons it occurred to me.
I tried rlwrap (the readline wrapper) with telnet, and of course it
works, in that you get full readline support with saved history in your
telnet session, on the client/user side) but you lose the [TAB] and [?]
command completion of the vty.
All that needs to happen is that the tab and ? are sent to the telnet
immediately, without waiting for the newline. Then it would reply with the
completion / online doc output.
I had a quick go and re-implementing the command
completion using an
rlwrap plugin
you mean like navigate the vty tree and figure out what commands exist? that's
not going to work, at least not like the real vty behaves. There is lots of
magic going on there, argument range checking and whatnot.
I think you have
to stop rlwarp from sending a newline along with the command completion
TAB though, and I'm not sure this is doable from the plugin. I'll have
another look if I can find time.
that sounds more like it. If we could only make all of [\n\t?] terminate a
readline like \n does...
I'll take a look at the python vty interact. I
haven't looked at it.
That would also need the don't-wait-for-newline stuff, and it currently also
omits the prompts.
What works already is a kind of pseudo interactive shell: e.g. run osmo-bsc,
then
$ osmo_interact_vty.py -p 4242
?<enter>
show Show running system information
list Print command list
exit Exit current mode and down to previous mode
help Description of the interactive help system
enable Turn on privileged mode command
terminal Set terminal line parameters
who Display who is on vty
logging Configure logging
no Negate a command or set its defaults
Needs to
* show the prompt
* change it to treat all of [\n\t?] as line-end;
I hope that doesn't need re-invention of libreadline -- that's the biggest
uncertainty.
* write/read the history...
Hm, looks like it might end up a considerable effort after all.
~N