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