diff --git a/install.pl b/install.pl index 1273755cd2467c5ed128501ddbbe83be2b183db0..7d497b1bf7a25e62156db0023348f29314ebbc2a 100755 --- a/install.pl +++ b/install.pl @@ -124,16 +124,27 @@ sub prompt_username { return $username; } -sub prompt_password { - print "Enter your faculty password: "; - system("stty -echo"); - chomp(my $password1 = <STDIN>); - system("stty echo"); - print "\nRepeat your faculty password: "; +sub prompt_secret { + my ($prompt) = @_; + print "$prompt: "; + + local $SIG{INT} = sub { + system("stty echo"); + exit 1; + }; + + my $value; system("stty -echo"); - chomp(my $password2 = <STDIN>); + chomp($value = <STDIN>); system("stty echo"); + print "\n"; + return $value; +} + +sub prompt_password { + my $password1 = prompt_secret("Enter your faculty password"); + my $password2 = prompt_secret("Repeat your faculty password"); if ($password1 ne $password2) { die "[ERROR] Passwords do not match!";