/* * Copyright 2013 Alex Lin. * * Licensed 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 com.opoopress.maven.plugins.plugin.ssh; import org.apache.maven.wagon.providers.ssh.interactive.InteractiveUserInfo; import java.io.Console; import java.util.Arrays; import java.util.List; /** * @author Alex Lin * */ public class SystemConsoleInteractiveUserInfo implements InteractiveUserInfo { private Console console = System.console(); /* (non-Javadoc) * @see org.apache.maven.wagon.providers.ssh.interactive.InteractiveUserInfo#promptYesNo(java.lang.String) */ @Override public boolean promptYesNo(String message) { List<String> possibleValues = Arrays.asList(new String[] { "y", "n" }); message += " (y/n): "; String line; do { line = new String(console.readLine(message)); if (line != null && !possibleValues.contains(line)) { console.printf("Invalid selection"); } } while (line == null || !possibleValues.contains(line)); return "y".equalsIgnoreCase(line); } /* (non-Javadoc) * @see org.apache.maven.wagon.providers.ssh.interactive.InteractiveUserInfo#showMessage(java.lang.String) */ @Override public void showMessage(String message) { console.printf("message"); } /* (non-Javadoc) * @see org.apache.maven.wagon.providers.ssh.interactive.InteractiveUserInfo#promptPassword(java.lang.String) */ @Override public String promptPassword(String message) { return new String(console.readPassword(message + ": ")); } /* (non-Javadoc) * @see org.apache.maven.wagon.providers.ssh.interactive.InteractiveUserInfo#promptPassphrase(java.lang.String) */ @Override public String promptPassphrase(String message) { return promptPassword(message); } }