private boolean createTag( String tagName, TaskListener listener, File destdir, String moduleLocalDir, String module, boolean isFlatten) throws IOException, InterruptedException { FilePath path = (isFlatten ? new FilePath(destdir).child(module) : new FilePath(destdir).child(moduleLocalDir).child(module)); boolean isDir = path.isDirectory(); ArgumentListBuilder cmd = new ArgumentListBuilder(); cmd.add(scmInstance.getDescriptor().getCvsExeOrDefault(), "tag"); if (isDir) { cmd.add("-R"); } cmd.add(tagName); if (!isDir) { cmd.add(path.getName()); path = path.getParent(); } if (!scmInstance.run(new Launcher.LocalLauncher(listener), cmd, listener, path)) { listener.getLogger().println(Messages.CVSSCM_TaggingFailed()); return false; } return true; }