From 22659c867e3b8f11907302a4c6bbf9c7f5f9e9d3 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Sun, 13 Apr 2014 11:53:25 -0400
Subject: [PATCH] Install sources artifact to Maven and Moxie repositories for ant builds

---
 src/main/java/com/gitblit/transport/ssh/commands/DispatchCommand.java |   25 +++++++++++++++++++++++--
 1 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/gitblit/transport/ssh/commands/DispatchCommand.java b/src/main/java/com/gitblit/transport/ssh/commands/DispatchCommand.java
index b916bb1..754a64f 100644
--- a/src/main/java/com/gitblit/transport/ssh/commands/DispatchCommand.java
+++ b/src/main/java/com/gitblit/transport/ssh/commands/DispatchCommand.java
@@ -40,6 +40,12 @@
 import com.google.common.base.Strings;
 import com.google.common.collect.Maps;
 
+/**
+ * Parses an SSH command-line and dispatches the command to the appropriate
+ * BaseCommand instance.
+ *
+ * @since 1.5.0
+ */
 public abstract class DispatchCommand extends BaseCommand implements ExtensionPoint {
 
 	private Logger log = LoggerFactory.getLogger(getClass());
@@ -89,6 +95,7 @@
 	 * registered within this method.
 	 *
 	 * @param user
+	 * @since 1.5.0
 	 */
 	protected abstract void setup(UserModel user);
 
@@ -318,6 +325,10 @@
 		return false;
 	}
 
+	public String getDescription() {
+		return getClass().getAnnotation(CommandMetaData.class).description();
+	}
+
 	@Override
 	public String usage() {
 		Set<String> cmds = new TreeSet<String>();
@@ -332,9 +343,9 @@
 				continue;
 			}
 
-			String displayName = name;
+			String displayName = name  + (meta.admin() ? "*" : "");
 			if (commandToAliases.containsKey(meta.name())) {
-				displayName = name + " (" + Joiner.on(',').join(commandToAliases.get(meta.name())) + ")";
+				displayName = name  + (meta.admin() ? "*" : "")+ " (" + Joiner.on(',').join(commandToAliases.get(meta.name())) + ")";
 			}
 			displayNames.put(name, displayName);
 
@@ -351,6 +362,16 @@
 		String format = "%-" + maxLength + "s   %s";
 
 		final StringBuilder usage = new StringBuilder();
+		if (!StringUtils.isEmpty(getName())) {
+			String title = getName().toUpperCase() + ": " + getDescription();
+			String b = com.gitblit.utils.StringUtils.leftPad("", title.length() + 2, '═');
+			usage.append('\n');
+			usage.append(b).append('\n');
+			usage.append(' ').append(title).append('\n');
+			usage.append(b).append('\n');
+			usage.append('\n');
+		}
+
 		if (!cmds.isEmpty()) {
 			usage.append("Available commands");
 			if (!getName().isEmpty()) {

--
Gitblit v1.9.1