/* * ==================================================================== * Copyright (c) 2004-2012 TMate Software Ltd. All rights reserved. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at http://svnkit.com/license.html. * If newer versions of this license are posted there, you may use a * newer version instead, at your option. * ==================================================================== */ package org.tmatesoft.svn.cli.svnversion; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; import org.tmatesoft.svn.cli.AbstractSVNCommand; import org.tmatesoft.svn.core.SVNException; import org.tmatesoft.svn.core.internal.wc.SVNPath; import org.tmatesoft.svn.core.wc.SVNClientManager; /** * @version 1.3 * @author TMate Software Ltd. */ public class SVNVersionCommand extends AbstractSVNCommand { public SVNVersionCommand() { super("", null); } protected Collection createSupportedOptions() { List options = new ArrayList(); options.add(SVNVersionOption.NO_NEWLINE); options.add(SVNVersionOption.COMMITTED); options.add(SVNVersionOption.HELP); options.add(SVNVersionOption.VERSION); return options; } protected SVNVersionCommandEnvironment getSVNVersionEnvironment() { return (SVNVersionCommandEnvironment) getEnvironment(); } protected String getResourceBundleName() { return "org.tmatesoft.svn.cli.svnversion.commands"; } public void run() throws SVNException { List targets = getEnvironment().combineTargets(null, false); if (targets.isEmpty()) { targets.add(""); } SVNPath target = new SVNPath((String) targets.get(0)); if (target.isURL()) { target = new SVNPath(""); targets.add(0, ""); } String trailURL = (String) (targets.size() > 1 ? targets.get(1) : null); if (target.isFile()) { String id = SVNClientManager.newInstance().getWCClient().doGetWorkingCopyID(target.getFile(), trailURL, getSVNVersionEnvironment().isCommitted()); if (id != null) { getEnvironment().getOut().print(id); if (!getSVNVersionEnvironment().isNoNewLine()) { getEnvironment().getOut().println(); } } } } public Collection getGlobalOptions() { return Collections.EMPTY_LIST; } }