From 99c350267f4dfa668decf8fdb47390faae644f09 Mon Sep 17 00:00:00 2001 From: Benjamin Renard Date: Tue, 20 Feb 2024 21:13:33 +0100 Subject: [PATCH] prompt_for_password: remove external bash dependency --- src/Cli.php | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/Cli.php b/src/Cli.php index 02495d4..25d59d1 100644 --- a/src/Cli.php +++ b/src/Cli.php @@ -412,17 +412,11 @@ Additional parameters: * @return string */ public static function prompt_for_password($prompt=null) { - // Check bash is available - $command = "/usr/bin/env bash -c 'echo OK'"; - if (rtrim(shell_exec($command)) !== 'OK') - Log::fatal(I18n::_("Can't invoke bash. Can't ask password prompt.")); - - $command = "/usr/bin/env bash -c 'read -s -p \""; - $command .= addslashes($prompt?_($prompt):I18n::_("Please enter password:")); - $command .= "\" mypassword && echo \$mypassword'"; - $password = rtrim(shell_exec($command)); - echo "\n"; - return $password; + print($prompt?_($prompt):I18n::_("Please enter password:")); + system('stty -echo'); + $password = trim(fgets(STDIN)); + system('stty echo'); + return $password; } /**