1/*******************************************************************************
2 * Copyright (c) 2000, 2006 IBM Corporation and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 *
8 * Contributors:
9 *     IBM Corporation - initial API and implementation
10 *******************************************************************************/
11package org.eclipse.releng;
12
13import org.apache.tools.ant.Task;
14import org.apache.tools.ant.BuildException;
15import java.io.File;
16
17/*
18 * A class that strips version numbers off built plugin directory names.  This
19 * is helpful when prebuilt plugins are used in generating javadoc (on the
20 * classpath).
21 */
22
23public class VersionNumberStripper extends Task {
24
25	//the directory containing the directories and files from which to remove version information
26	private String directory;
27
28	public VersionNumberStripper() {
29		super();
30	}
31
32	public void setDirectory(String dir){directory=dir;}
33
34	public String getDirectory(){return directory;}
35
36  	public void execute() throws BuildException {
37  		setDirectory(directory);
38  		stripVersions();
39  	}
40
41	public static void main(String[] args) {
42		new VersionNumberStripper().execute();
43	}
44
45	private void stripVersions(){
46		/* rename directories by removing anything from an underscore onward,
47		 * assuming that anything following the first
48		 * occurence of an underscore is a version number
49		 */
50
51		File file=new File(directory);
52
53		File [] files = file.listFiles();
54
55		for (int i=0; i<files.length; i++){
56			String absolutePath = files[i].getAbsolutePath();
57			String path = absolutePath.substring(0, absolutePath.length()
58					- files[i].getName().length());
59
60			int underScorePos = files[i].getName().indexOf("_");
61			int jarExtPos = files[i].getName().indexOf(".jar");
62			if (underScorePos != -1) {
63				String targetPath;
64				if (jarExtPos != -1) {
65					targetPath =path
66							+ files[i].getName().substring(0, underScorePos)
67							+ ".jar";
68				} else {
69					targetPath = path
70							+ files[i].getName().substring(0, underScorePos);
71				}
72				files[i].renameTo(new File(targetPath));
73			}
74
75		}
76	}
77}
78
79