@Override public String formatModule(Module module) throws Exception { File moduleDirectory = pride.getModuleDirectory(module.getName()); // MM module-name (git) VcsStatus status = module.getVcs().getSupport().getStatus(moduleDirectory); String branch = status.getBranch(); StringBuilder line = new StringBuilder(); line.append(status.hasUnpublishedChanges() ? 'M' : ' '); line.append(status.hasUncommittedChanges() ? 'M' : ' '); line.append(' ').append(module.getName()); line.append(Strings.repeat(" ", this.moduleMaxLength + 2 - module.getName().length())); if (!Strings.isNullOrEmpty(branch)) { line.append(branch); line.append(Strings.repeat(" ", this.branchMaxLength + 2 - branch.length())); line.append('@'); } line.append(status.getRevision()); line.append(" (").append(module.getVcs().getType()).append(")"); return line.toString(); } }
@Override public boolean hasChanges(File targetDirectory) throws IOException { VcsStatus.Builder builder = VcsStatus.builder(""); getStatusInternal(targetDirectory, builder); VcsStatus status = builder.build(); return status.hasUncommittedChanges() || status.hasUnpublishedChanges(); }
@Override public boolean matches(Pride pride, Module module) throws IOException { VcsStatus status = module.getVcs().getSupport().getStatus(pride.getModuleDirectory(module.getName())); return (uncommittedChanges && status.hasUncommittedChanges()) || (unpublishedChanges && status.hasUnpublishedChanges()); }