Fixing silent-input over password
--silent-input was being ignored on password. This is a little fix I have also moved an abstract just for InputAbstract
This commit is contained in:
parent
a2a88625de
commit
14cb3a07a0
|
@ -16,86 +16,15 @@
|
||||||
*/
|
*/
|
||||||
package org.apache.activemq.artemis.cli.commands;
|
package org.apache.activemq.artemis.cli.commands;
|
||||||
|
|
||||||
import java.util.Scanner;
|
|
||||||
|
|
||||||
public abstract class ActionAbstract implements Action
|
public abstract class ActionAbstract implements Action
|
||||||
{
|
{
|
||||||
|
|
||||||
protected ActionContext context;
|
protected ActionContext context;
|
||||||
|
|
||||||
private Scanner scanner;
|
|
||||||
|
|
||||||
private boolean noInput = false;
|
|
||||||
|
|
||||||
protected void disableInputs()
|
|
||||||
{
|
|
||||||
noInput = true;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
protected String input(String propertyName, String prompt, String silentDefault)
|
|
||||||
{
|
|
||||||
if (noInput)
|
|
||||||
{
|
|
||||||
return silentDefault;
|
|
||||||
}
|
|
||||||
String inputStr;
|
|
||||||
boolean valid = false;
|
|
||||||
System.out.println();
|
|
||||||
do
|
|
||||||
{
|
|
||||||
context.out.println(propertyName + ": is mandatory with this configuration:");
|
|
||||||
context.out.println(prompt);
|
|
||||||
inputStr = scanner.nextLine();
|
|
||||||
if (inputStr.trim().equals(""))
|
|
||||||
{
|
|
||||||
System.out.println("Invalid Entry!");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
valid = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
while (!valid);
|
|
||||||
|
|
||||||
return inputStr.trim();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected String inputPassword(String propertyName, String prompt, String silentDefault)
|
|
||||||
{
|
|
||||||
if (noInput)
|
|
||||||
{
|
|
||||||
return silentDefault;
|
|
||||||
}
|
|
||||||
String inputStr;
|
|
||||||
boolean valid = false;
|
|
||||||
System.out.println();
|
|
||||||
do
|
|
||||||
{
|
|
||||||
context.out.println(propertyName + ": is mandatory with this configuration:");
|
|
||||||
context.out.println(prompt);
|
|
||||||
inputStr = new String(System.console().readPassword());
|
|
||||||
|
|
||||||
if (inputStr.trim().equals(""))
|
|
||||||
{
|
|
||||||
System.out.println("Invalid Entry!");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
valid = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
while (!valid);
|
|
||||||
|
|
||||||
return inputStr.trim();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Object execute(ActionContext context) throws Exception
|
public Object execute(ActionContext context) throws Exception
|
||||||
{
|
{
|
||||||
this.context = context;
|
this.context = context;
|
||||||
|
|
||||||
scanner = new Scanner(context.in);
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ import static java.nio.file.attribute.PosixFilePermission.OWNER_WRITE;
|
||||||
* CLI action that creates a broker instance directory.
|
* CLI action that creates a broker instance directory.
|
||||||
*/
|
*/
|
||||||
@Command(name = "create", description = "creates a new broker instance")
|
@Command(name = "create", description = "creates a new broker instance")
|
||||||
public class Create extends ActionAbstract
|
public class Create extends InputAbstract
|
||||||
{
|
{
|
||||||
private static final Integer DEFAULT_PORT = 61616;
|
private static final Integer DEFAULT_PORT = 61616;
|
||||||
|
|
||||||
|
@ -132,9 +132,6 @@ public class Create extends ActionAbstract
|
||||||
@Option(name = "--role", description = "The name for the role created (Default: amq)")
|
@Option(name = "--role", description = "The name for the role created (Default: amq)")
|
||||||
String role;
|
String role;
|
||||||
|
|
||||||
@Option(name = "--silent-input", description = "It will disable all the inputs, and it would make a best guess for any required input")
|
|
||||||
boolean silentInput;
|
|
||||||
|
|
||||||
boolean IS_WINDOWS;
|
boolean IS_WINDOWS;
|
||||||
|
|
||||||
boolean IS_CYGWIN;
|
boolean IS_CYGWIN;
|
||||||
|
@ -359,11 +356,6 @@ public class Create extends ActionAbstract
|
||||||
{
|
{
|
||||||
super.execute(context);
|
super.execute(context);
|
||||||
|
|
||||||
if (silentInput)
|
|
||||||
{
|
|
||||||
this.disableInputs();
|
|
||||||
}
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
return run(context);
|
return run(context);
|
||||||
|
|
|
@ -0,0 +1,111 @@
|
||||||
|
/**
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||||
|
* (the "License"); you may not use this file except in compliance with
|
||||||
|
* the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.apache.activemq.artemis.cli.commands;
|
||||||
|
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
import io.airlift.airline.Option;
|
||||||
|
|
||||||
|
public class InputAbstract extends ActionAbstract
|
||||||
|
{
|
||||||
|
|
||||||
|
private Scanner scanner;
|
||||||
|
|
||||||
|
@Option(name = "--silent-input", description = "It will disable all the inputs, and it would make a best guess for any required input")
|
||||||
|
private boolean silentInput = false;
|
||||||
|
|
||||||
|
public boolean isSilentInput()
|
||||||
|
{
|
||||||
|
return silentInput;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSilentInput(boolean silentInput)
|
||||||
|
{
|
||||||
|
this.silentInput = silentInput;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected String input(String propertyName, String prompt, String silentDefault)
|
||||||
|
{
|
||||||
|
if (silentInput)
|
||||||
|
{
|
||||||
|
return silentDefault;
|
||||||
|
}
|
||||||
|
|
||||||
|
String inputStr;
|
||||||
|
boolean valid = false;
|
||||||
|
System.out.println();
|
||||||
|
do
|
||||||
|
{
|
||||||
|
context.out.println(propertyName + ": is mandatory with this configuration:");
|
||||||
|
context.out.println(prompt);
|
||||||
|
inputStr = scanner.nextLine();
|
||||||
|
if (inputStr.trim().equals(""))
|
||||||
|
{
|
||||||
|
System.out.println("Invalid Entry!");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
valid = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while (!valid);
|
||||||
|
|
||||||
|
return inputStr.trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected String inputPassword(String propertyName, String prompt, String silentDefault)
|
||||||
|
{
|
||||||
|
if (silentInput)
|
||||||
|
{
|
||||||
|
return silentDefault;
|
||||||
|
}
|
||||||
|
|
||||||
|
String inputStr;
|
||||||
|
boolean valid = false;
|
||||||
|
System.out.println();
|
||||||
|
do
|
||||||
|
{
|
||||||
|
context.out.println(propertyName + ": is mandatory with this configuration:");
|
||||||
|
context.out.println(prompt);
|
||||||
|
inputStr = new String(System.console().readPassword());
|
||||||
|
|
||||||
|
if (inputStr.trim().equals(""))
|
||||||
|
{
|
||||||
|
System.out.println("Invalid Entry!");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
valid = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while (!valid);
|
||||||
|
|
||||||
|
return inputStr.trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object execute(ActionContext context) throws Exception
|
||||||
|
{
|
||||||
|
super.execute(context);
|
||||||
|
|
||||||
|
this.scanner = new Scanner(context.in);
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue