/*
* #%L
* gitools-ui-app
* %%
* Copyright (C) 2013 Universitat Pompeu Fabra - Biomedical Genomics group
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program. If not, see
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
*/
package org.gitools.ui.app.batch.tools;
import com.google.common.base.Strings;
import org.gitools.ui.app.Main;
import org.gitools.ui.core.commands.tools.ITool;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Set;
public class HelpTool implements ITool {
private String toolName;
private static Set<String> availableTools;
public HelpTool(String toolName, Set<String> availableTools) {
super();
this.toolName = toolName;
this.availableTools = availableTools;
}
public HelpTool() {
super();
}
public HelpTool(Set<String> availableTools) {
this("", availableTools);
}
@Override
public String getName() {
return "help";
}
@Override
public boolean run(String[] args, PrintWriter out) {
out.println(getVersion());
if (!Strings.isNullOrEmpty(toolName)) {
out.println("\nERROR: Unknown command: '" + toolName + "'\n");
}
printAvailableTools(out);
return true;
}
@Override
public String getExitMessage() {
return null;
}
@Override
public int getExitStatus() {
return 0;
}
public static String getVersion() {
return "Gitools " + Main.class.getPackage().getImplementationVersion();
}
@Override
public boolean check(String[] args, PrintWriter out) {
return true;
}
private static void printAvailableTools(PrintWriter out) {
out.println("Available commands:");
String[] orderedtools = availableTools.toArray(new String[availableTools.size()]);
Arrays.sort(orderedtools);
for (String tool : orderedtools) {
out.println(" " + tool);
}
out.println("Obtain more info running './gitools <command> --help' or at online documentation\n");
}
}