From 5cc48016caf4de3ecce6fbf2f2a34d3bde99edb6 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] Support regex filtering the projects, repositories, and users list --- src/main/java/com/gitblit/transport/ssh/gitblit/UsersDispatcher.java | 26 +++++++++++++++++++++++--- 1 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/gitblit/transport/ssh/gitblit/UsersDispatcher.java b/src/main/java/com/gitblit/transport/ssh/gitblit/UsersDispatcher.java index 1682ab4..ebe0a0a 100644 --- a/src/main/java/com/gitblit/transport/ssh/gitblit/UsersDispatcher.java +++ b/src/main/java/com/gitblit/transport/ssh/gitblit/UsersDispatcher.java @@ -15,13 +15,16 @@ */ package com.gitblit.transport.ssh.gitblit; +import java.util.ArrayList; import java.util.List; import org.kohsuke.args4j.Argument; import org.kohsuke.args4j.Option; +import org.parboiled.common.StringUtils; import com.gitblit.manager.IGitblit; import com.gitblit.models.RegistrantAccessPermission; +import com.gitblit.models.RepositoryModel; import com.gitblit.models.TeamModel; import com.gitblit.models.UserModel; import com.gitblit.transport.ssh.commands.CommandMetaData; @@ -108,15 +111,32 @@ @Option(name = "--tabbed", aliases = { "-t" }, usage = "as tabbed output") private boolean tabbed; + @Argument(index = 0, metaVar = "REGEX", usage = "regex filter expression") + protected String regexFilter; + @Override public void run() { IGitblit gitblit = getContext().getGitblit(); List<UserModel> users = gitblit.getAllUsers(); - if (tabbed) { - asTabbed(users); + List<UserModel> filtered; + if (StringUtils.isEmpty(regexFilter)) { + // no regex filter + filtered = users; } else { - asTable(users); + // regex filter the list + filtered = new ArrayList<UserModel>(); + for (UserModel u : users) { + if (u.username.matches(regexFilter)) { + filtered.add(u); + } + } + } + + if (tabbed) { + asTabbed(filtered); + } else { + asTable(filtered); } } -- Gitblit v1.9.1