Subversion Repositories DevTools

Rev

Blame | Last modification | View Log | RSS feed

package com.erggroup.mass.ant;

import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import net.sourceforge.clearcase.api.IClearcase;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;

/**
 *
 */
public class Utils
{
        public static PackageVersion getHighestVersion( File packageDirectory )
        {
                return Utils.getHighestVersion(packageDirectory,"mas");
        }

        public static PackageVersion getHighestVersion( File packageDirectory, String scope)
        {
                File[] existing = packageDirectory.listFiles();

                ArrayList versions = new ArrayList(existing.length);
                for ( int i=0; i<existing.length; i++ )
                {
                        try
                        {
                                PackageVersion version = new PackageVersion(existing[i].getName());
                                if ( version.getScope().equals(scope) )
                                {
                                        versions.add( version );
                                }
                        }
                        catch ( NumberFormatException x )
                        {
                                // Ignore
                        }
                }

                if ( versions.size() > 0 )
                {
                        return (PackageVersion)Collections.max(versions);
                }

                return null;
        }

        /**
         * Set the working directory for the current project to the VOB root
         *
         * @param project the project whose working directory will be set.
         */
        public static void setWorkingDirectory( IClearcase clearcase, Project project )
        {
                File baseDirectory = project.getBaseDir().getParentFile();
                while ( baseDirectory != null && baseDirectory.getParentFile() != null && baseDirectory.getParentFile().getParentFile() != null )
                {
                        baseDirectory = baseDirectory.getParentFile();
                }

                IClearcase.Status chdir = clearcase.cleartool( "cd " + baseDirectory.getAbsolutePath() );
                if ( !chdir.status )
                {
                        project.log(chdir.message,Project.MSG_ERR);
                        throw new BuildException("Could not change to VOB root directory \'" + baseDirectory.getAbsolutePath() + "\'.");
                }
        }

}