antoine 2003/05/29 14:35:43
Modified: src/main/org/apache/tools/ant/taskdefs/optional/pvcs Pvcs.java docs/manual/OptionalTasks pvcstask.html . WHATSNEW Log: config attribute added to set the location of a specific PVCS .cfg file PR: 9752 Submitted by: Jon Dickinson (dickinson dot j at ucles dot org dot uk ) Revision Changes Path 1.23 +51 -26 ant/src/main/org/apache/tools/ant/taskdefs/optional/pvcs/Pvcs.java Index: Pvcs.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/optional/pvcs/Pvcs.java,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- Pvcs.java 10 Feb 2003 14:14:22 -0000 1.22 +++ Pvcs.java 29 May 2003 21:35:42 -0000 1.23 @@ -81,12 +81,12 @@ * PVCS is a version control system * developed by <a href="http://www.merant.com/products/pvcs">Merant</a>. * <br> - * Before using this tag, the user running ant must have access to the commands + * Before using this tag, the user running ant must have access to the commands * of PVCS (get and pcli) and must have access to the repository. Note that the way to specify * the repository is platform dependent so use property to specify location of repository. * <br> * This version has been tested agains PVCS version 6.5 and 6.6 under Windows and Solaris. - + * * <b>19-04-2001</b> <p>The task now has a more robust * parser. It allows for platform independant file paths @@ -107,6 +107,7 @@ * @author <a href="mailto:[EMAIL PROTECTED]">Thomas Christensen</a> * @author <a href="mailto:[EMAIL PROTECTED]">Don Jeffery</a> * @author <a href="mailto:[EMAIL PROTECTED]">Steven E. Newton</a> + * @author <a href="mailto:[EMAIL PROTECTED]">Jon Dickinson</a> */ public class Pvcs extends org.apache.tools.ant.Task { private String pvcsbin; @@ -123,6 +124,7 @@ private String filenameFormat; private String lineStart; private String userId; + private String config; /** * Constant for the thing to execute */ @@ -199,7 +201,7 @@ // default pvcs project is "/" if (getPvcsproject() == null && getPvcsprojects().isEmpty()) { - pvcsProject = "/"; + pvcsProject = "/"; } if (getPvcsproject() != null) { @@ -226,14 +228,14 @@ tmp2 = new File("pvcs_ant_" + rand.nextLong() + ".log"); log(commandLine.describeCommand(), Project.MSG_VERBOSE); try { - result = runCmd(commandLine, - new PumpStreamHandler(fos, + result = runCmd(commandLine, + new PumpStreamHandler(fos, new LogOutputStream(this, Project.MSG_WARN))); } finally { fos.close(); } - + if (result != 0 && !ignorerc) { String msg = "Failed executing: " + commandLine.toString(); throw new BuildException(msg, getLocation()); @@ -256,6 +258,11 @@ commandLine.clearArgs(); commandLine.setExecutable(getExecutable(GET_EXE)); + if(getConfig() != null && getConfig().length()>0) + { + commandLine.createArgument().setValue("-c" + getConfig()); + } + if (getForce() != null && getForce().equals("yes")) { commandLine.createArgument().setValue("-Y"); } else { @@ -338,18 +345,18 @@ if (index > -1) { File dir = new File(f.substring(0, index)); if (!dir.exists()) { - log("Creating " + dir.getAbsolutePath(), + log("Creating " + dir.getAbsolutePath(), Project.MSG_VERBOSE); if (dir.mkdirs()) { - log("Created " + dir.getAbsolutePath(), + log("Created " + dir.getAbsolutePath(), Project.MSG_INFO); } else { - log("Failed to create " - + dir.getAbsolutePath(), + log("Failed to create " + + dir.getAbsolutePath(), Project.MSG_INFO); } } else { - log(dir.getAbsolutePath() + " exists. Skipping", + log(dir.getAbsolutePath() + " exists. Skipping", Project.MSG_VERBOSE); } } else { @@ -367,7 +374,7 @@ } } } - + /** * Simple hack to handle the PVCS command-line tools botch when @@ -416,7 +423,7 @@ /** * The format of the folder names; optional. - * This must be in a format suitable for + * This must be in a format suitable for * <code>java.text.MessageFormat</code>. * Index 1 of the format will be used as the file name. * Defaults to <code>{0}-arc({1})</code> @@ -445,7 +452,7 @@ * need to change this value, UNC names will always be * accepted. */ - + public void setLineStart(String l) { lineStart = l; } @@ -492,10 +499,10 @@ } /** - * Workspace to use; optional. + * Workspace to use; optional. * By specifying a workspace, the files are extracted to that location. - * A PVCS workspace is a name for a location of the workfiles and - * isn't as such the location itself. + * A PVCS workspace is a name for a location of the workfiles and + * isn't as such the location itself. * You define the location for a workspace using the PVCS GUI clients. * If this isn't specified the default workspace for the current user is used. * @param ws String @@ -536,12 +543,12 @@ /** * Specifies the value of the force argument; optional. - * If set to <i>yes</i> all files that exists and are - * writable are overwritten. Default <i>no</i> causes the files - * that are writable to be ignored. This stops the PVCS command + * If set to <i>yes</i> all files that exists and are + * writable are overwritten. Default <i>no</i> causes the files + * that are writable to be ignored. This stops the PVCS command * <i>get</i> to stop asking questions! * @todo make a boolean setter - * @param repo String (yes/no) + * @param f String (yes/no) */ public void setForce(String f) { if (f != null && f.equalsIgnoreCase("yes")) { @@ -561,7 +568,7 @@ /** * Specifies the name of the promotiongroup argument - * @param repo String + * @param w String */ public void setPromotiongroup(String w) { promotiongroup = w; @@ -577,7 +584,7 @@ /** * Only files marked with this label are extracted; optional. - * @param repo String + * @param l String */ public void setLabel(String l) { label = l; @@ -617,7 +624,7 @@ /** * Specify a project within the PVCS repository to extract files from. - * @param PvcsProject + * @param p */ public void addPvcsproject(PvcsProject p) { pvcsProjects.addElement(p); @@ -628,13 +635,31 @@ } /** - * If set to <i>true</i> files are fetched only if + * If set to <i>true</i> files are fetched only if * newer than existing local files; optional, default false. */ public void setUpdateOnly(boolean l) { updateOnly = l; } + /** + * returns the path of the configuration file to be used + * @return the path of the config file + */ + public String getConfig() { + return config; + } + + /** + * Sets a configuration file other than the default to be used. + * These files have a .cfg extension and are often found in archive or pvcsprop folders. + * @param f config file - can be given absolute or relative to ant basedir + */ + public void setConfig(File f) { + config = f.toString(); + } + + public String getUserId() { return userId; } @@ -643,7 +668,7 @@ * User ID; unused. * @ant.attribute ignore="true" */ - + public void setUserId(String u) { userId = u; } 1.8 +11 -0 ant/docs/manual/OptionalTasks/pvcstask.html Index: pvcstask.html =================================================================== RCS file: /home/cvs/ant/docs/manual/OptionalTasks/pvcstask.html,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- pvcstask.html 28 Mar 2003 12:51:51 -0000 1.7 +++ pvcstask.html 29 May 2003 21:35:42 -0000 1.8 @@ -22,6 +22,7 @@ <ul> <li>Thomas Christensen (<a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>)</li> <li>Don Jeffery (<a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>)</li> + <li>Jon Dickinson (<a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>)</li> </ul> Version 1.1 - 2001/06/27<br> <p>Problems with UNC pathnames and the use of () in paths are fixed and an updateonly @@ -95,6 +96,16 @@ <td VALIGN=TOP WIDTH="78%">Only files within this promotion group are extracted. Using both the <i>label</i> and the <i>promotiongroup</i> tag will cause the files in the promotion group and with that label to be extracted. +</td> + +<td VALIGN=TOP WIDTH="10%">No</td> +</tr> + +<tr> +<td VALIGN=TOP WIDTH="12%">config</td> + +<td VALIGN=TOP WIDTH="78%">path of a non default .cfg file. +Can be given absolute or relative to ant's base directory. </td> <td VALIGN=TOP WIDTH="10%">No</td> 1.433 +3 -0 ant/WHATSNEW Index: WHATSNEW =================================================================== RCS file: /home/cvs/ant/WHATSNEW,v retrieving revision 1.432 retrieving revision 1.433 diff -u -r1.432 -r1.433 --- WHATSNEW 29 May 2003 15:35:26 -0000 1.432 +++ WHATSNEW 29 May 2003 21:35:42 -0000 1.433 @@ -395,6 +395,9 @@ if ejbjar has cmpversion="2.0" set Bugzilla Reports 14707 and 14709. +* <pvcs> config attribute added to set the location of a specific PVCS .cfg file + Bugzilla Report 9752 + Changes from Ant 1.5.2 to Ant 1.5.3 ===================================