Merge "If a console doesn't exist, read password from stdin."

This commit is contained in:
Ying Wang 2015-10-18 17:07:28 +00:00 committed by Gerrit Code Review
commit 4f6f0f924e

View file

@ -167,18 +167,29 @@ class SignApk {
}
/**
* Reads the password from console and returns it as a string.
* If a console doesn't exist, reads the password from stdin
* If a console exists, reads the password from console and returns it as a string.
*
* @param keyFile The file containing the private key. Used to prompt the user.
*/
private static String readPassword(File keyFile) {
Console console;
char[] pwd;
if((console = System.console()) != null &&
(pwd = console.readPassword("[%s]", "Enter password for " + keyFile)) != null){
return String.valueOf(pwd);
if ((console = System.console()) == null) {
System.out.print("Enter password for " + keyFile + " (password will not be hidden): ");
System.out.flush();
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
try {
return stdin.readLine();
} catch (IOException ex) {
return null;
}
} else {
return null;
if ((pwd = console.readPassword("[%s]", "Enter password for " + keyFile)) != null) {
return String.valueOf(pwd);
} else {
return null;
}
}
}