fix: interactive mode: mark non-printable chars as such to avoid readline quirks

This commit is contained in:
Stéphane Lesimple 2020-12-01 16:39:24 +00:00
parent 7008e385d2
commit 9c1870e990
No known key found for this signature in database
GPG key ID: 4B4A3289E9D35658

View file

@ -20,9 +20,19 @@ sub interactive {
my $interactiveModeTimeout = OVH::Bastion::config('interactiveModeTimeout')->value() || 0;
my $slaveOrMaster = (OVH::Bastion::config('readOnlySlaveMode')->value() ? 'slave' : 'master');
my $term = Term::ReadLine->new('Bastion Interactive');
my $prompt =
"\001\033[0m\033[33m$self\033[1;35m@\033[32m\002$bastionName\001\033[1;35m\002(\001\033[0m\033[36m\002$slaveOrMaster\001\033[1;35m\002)\001\033[0m\033[32m\002>\001\033[0m\002 ";
my $term = Term::ReadLine->new('Bastion Interactive');
my $prompt = ""
. "\001\033[0m\033[33m\002"
. $self
. "\001\033[1;35m\002" . "@"
. "\001\033[32m\002"
. $bastionName
. "\001\033[1;35m\002" . "("
. "\001\033[0m\033[36m\002"
. $slaveOrMaster
. "\001\033[1;35m\002" . ")"
. "\001\033[0m\033[32m\002" . ">"
. "\001\033[0m\002" . " ";
my $prompt_non_readline = $prompt;
$prompt_non_readline =~ s=\001|\002==g;