From 1c7917fa526925c672d4e5dd336d5b93aa51e6a5 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 10 Apr 2014 18:58:10 -0400
Subject: [PATCH] Add --json flag to the list command for outputing JSON
---
src/main/java/com/gitblit/transport/ssh/commands/ListFilterCommand.java | 28 ++++++++++++++++------------
1 files changed, 16 insertions(+), 12 deletions(-)
diff --git a/src/main/java/com/gitblit/transport/ssh/commands/ListRegexCommand.java b/src/main/java/com/gitblit/transport/ssh/commands/ListFilterCommand.java
similarity index 71%
rename from src/main/java/com/gitblit/transport/ssh/commands/ListRegexCommand.java
rename to src/main/java/com/gitblit/transport/ssh/commands/ListFilterCommand.java
index 1e25775..4cc0983 100644
--- a/src/main/java/com/gitblit/transport/ssh/commands/ListRegexCommand.java
+++ b/src/main/java/com/gitblit/transport/ssh/commands/ListFilterCommand.java
@@ -23,31 +23,33 @@
import com.gitblit.utils.StringUtils;
/**
- * List command that accepts a regex filter parameter.
- *
+ * List command that accepts a filter parameter.
+ *
* @author James Moger
*
* @param <T>
*/
-public abstract class ListRegexCommand<T> extends ListCommand<T> {
+public abstract class ListFilterCommand<T> extends ListCommand<T> {
- @Argument(index = 0, metaVar = "REGEX", usage = "regex filter expression")
- protected String regexFilter;
-
- protected abstract boolean matches(T t);
-
+ @Argument(index = 0, metaVar = "FILTER", usage = "filter expression")
+ private String filter;
+
+ protected abstract boolean matches(String filter, T t);
+
@Override
public void run() throws UnloggedFailure {
+ validateOutputFormat();
+
List<T> list = getItems();
List<T> filtered;
- if (StringUtils.isEmpty(regexFilter)) {
- // no regex filter
+ if (StringUtils.isEmpty(filter)) {
+ // no filter
filtered = list;
} else {
- // regex filter the list
+ // filter the list
filtered = new ArrayList<T>();
for (T t : list) {
- if (matches(t)) {
+ if (matches(filter, t)) {
filtered.add(t);
}
}
@@ -55,6 +57,8 @@
if (tabbed) {
asTabbed(filtered);
+ } else if (json) {
+ asJSON(filtered);
} else {
asTable(filtered);
}
--
Gitblit v1.9.1