Merge "Adds --description (-d) option to ls-projects"

This commit is contained in:
Shawn Pearce
2011-10-26 17:56:41 -07:00
committed by gerrit code review
2 changed files with 24 additions and 1 deletions

View File

@@ -41,6 +41,14 @@ OPTIONS
If the user does not have access to any branch in the project then the If the user does not have access to any branch in the project then the
whole project is not shown. whole project is not shown.
--description::
--d::
Allows listing of projects together with their respective
description.
Line-feeds are escaped to allow ls-project to keep the
"one project per line"-style.
--tree:: --tree::
-t:: -t::
Displays project inheritance in a tree-like format. Displays project inheritance in a tree-like format.

View File

@@ -97,6 +97,9 @@ final class ListProjects extends BaseCommand {
@Option(name = "--type", usage = "type of project") @Option(name = "--type", usage = "type of project")
private FilterType type = FilterType.CODE; private FilterType type = FilterType.CODE;
@Option(name = "--description", aliases = {"-d"}, usage = "include description of project in list")
private boolean showDescription;
private String currentTabSeparator = DEFAULT_TAB_SEPARATOR; private String currentTabSeparator = DEFAULT_TAB_SEPARATOR;
@Override @Override
@@ -115,6 +118,10 @@ final class ListProjects extends BaseCommand {
throw new UnloggedFailure(1, "fatal: --tree and --show-branch options are not compatible."); throw new UnloggedFailure(1, "fatal: --tree and --show-branch options are not compatible.");
} }
if (showTree && showDescription) {
throw new UnloggedFailure(1, "fatal: --tree and --description options are not compatible.");
}
final PrintWriter stdout = toPrintWriter(out); final PrintWriter stdout = toPrintWriter(out);
final TreeMap<String, TreeNode> treeMap = new TreeMap<String, TreeNode>(); final TreeMap<String, TreeNode> treeMap = new TreeMap<String, TreeNode>();
try { try {
@@ -184,7 +191,15 @@ final class ListProjects extends BaseCommand {
continue; continue;
} }
stdout.print(projectName.get() + "\n"); stdout.print(projectName.get());
String desc;
if (showDescription && !(desc = e.getProject().getDescription()).isEmpty()) {
// We still want to list every project as one-liners, hence escaping \n.
stdout.print(" - " + desc.replace("\n", "\\n"));
}
stdout.print("\n");
} }
if (showTree && treeMap.size() > 0) { if (showTree && treeMap.size() > 0) {