Update of /cvsroot/sharpcvslib/sharpcvslib/src/ICSharpCode.Console/SharpCvsLib/Console/Parser In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9234/src/ICSharpCode.Console/SharpCvsLib/Console/Parser Modified Files: ImportCommandParser.cs ListCommandParser.cs LogCommandParser.cs UpdateCommandParser.cs Added Files: FileParser.cs Log Message: Cleaned up documentation, added SSPI class that depends on DocVisions library. If the library is not found in lib/ext then the sspi classes are not included. Refactored some of the exception classes. Index: LogCommandParser.cs =================================================================== RCS file: /cvsroot/sharpcvslib/sharpcvslib/src/ICSharpCode.Console/SharpCvsLib/Console/Parser/LogCommandParser.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** LogCommandParser.cs 3 Dec 2004 08:47:27 -0000 1.1 --- LogCommandParser.cs 1 Jan 2005 22:06:37 -0000 1.2 *************** *** 70,73 **** --- 70,74 ---- /// </summary> /// <param name="cvsroot">User information</param> + /// <param name="args">Commandline arguments.</param> public LogCommandParser(string cvsroot, string[] args) : this(new CvsRoot(cvsroot), args){ *************** *** 78,81 **** --- 79,83 ---- /// </summary> /// <param name="cvsroot">User Information</param> + /// <param name="args">Commandline arguments.</param> public LogCommandParser(CvsRoot cvsroot, string[] args) { this.cvsRoot = cvsroot; *************** *** 132,145 **** this.ParseOptions(this.unparsedOptions); - Repository repos = null; - Root root = null; try { ! repos = Repository.Load(dir); ! root = Root.Load(dir); } catch (CvsFileNotFoundException e) { ConsoleMain.ExitProgram("Not a CVS repository.", e); } ! CurrentWorkingDirectory = new WorkingDirectory( new CvsRoot(root.FileContents), dir.FullName, this.repository); --- 134,158 ---- this.ParseOptions(this.unparsedOptions); try { ! Repository repository = Repository.Load(dir); ! if (null == repository || null == repository.FileContents) { ! throw new CvsFileNotFoundException( ! string.Format("Valid CVS\\Repository file not found in {0}", ! dir)); ! } ! this.repository = repository.FileContents; ! Root root = Root.Load(dir); ! if (null == root || null == root.FileContents) { ! throw new CvsFileNotFoundException( ! string.Format("Valid CVS\\Root file not found in {0}", ! dir)); ! } ! this.cvsRoot = new CvsRoot(root.FileContents); } catch (CvsFileNotFoundException e) { + LOGGER.Error(e); ConsoleMain.ExitProgram("Not a CVS repository.", e); } ! CurrentWorkingDirectory = new WorkingDirectory(this.cvsRoot, dir.FullName, this.repository); *************** *** 152,160 **** } /// <summary> /// Parse the command line options/ arguments and populate the command /// object with the arguments. /// </summary> ! /// <param name="options">A string value that holds the command /// line options the user has selected.</param> private void ParseOptions (string[] arguments) { --- 165,178 ---- } + public override void ParseOptions() { + this.ParseOptions(this.Args); + } + + /// <summary> /// Parse the command line options/ arguments and populate the command /// object with the arguments. /// </summary> ! /// <param name="arguments">A string value that holds the command /// line options the user has selected.</param> private void ParseOptions (string[] arguments) { --- NEW FILE: FileParser.cs --- #region "Copyright" // // Copyright (C) 2005 Clayton Harbour // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; either version 2 // of the License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // // As a special exception, the copyright holders of this library give you // permission to link this library with independent modules to produce an // executable, regardless of the license terms of these independent // modules, and to copy and distribute the resulting executable under // terms of your choice, provided that you also meet, for each linked // independent module, the terms and conditions of the license of that // module. An independent module is a module which is not derived from // or based on this library. If you modify this library, you may extend // this exception to your version of the library, but you are not // obligated to do so. If you do not wish to do so, delete this // exception statement from your version. // // <author>Clayton Harbour</author> #endregion using System; using System.Collections; using System.IO; using ICSharpCode.SharpCvsLib.FileSystem; namespace ICSharpCode.SharpCvsLib.Console.Parser { /// <summary> /// Parses out file names from command line arguments and attempts to resovle the file path /// using the current working directory. Constructs a collection of <see cref="FileInfo"/> /// objects. /// </summary> public class FileParser { private Hashtable _files = new Hashtable(); private Entries _cvsEntries = new Entries(); public ICollection Files { get { return this._files.Values; } } public FileParser(string[] args) { this.Parse(args); } private void Parse(string[] args) { foreach (string arg in args) { if (!arg.StartsWith("-")) { string file = arg; if (!Path.IsPathRooted(file)) { file = Path.Combine(Directory.GetCurrentDirectory(), file); } this._files.Add(file, new FileInfo(file)); } } } } } Index: ImportCommandParser.cs =================================================================== RCS file: /cvsroot/sharpcvslib/sharpcvslib/src/ICSharpCode.Console/SharpCvsLib/Console/Parser/ImportCommandParser.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ImportCommandParser.cs 22 Nov 2004 07:59:29 -0000 1.1 --- ImportCommandParser.cs 1 Jan 2005 22:06:37 -0000 1.2 *************** *** 68,74 **** /// <summary> ! /// Initialize a cvs repository. /// </summary> /// <param name="cvsroot">User information</param> public ImportCommandParser(string cvsroot, string[] args) : this(new CvsRoot(cvsroot), args){ --- 68,75 ---- /// <summary> ! /// Initialize a cvs command. /// </summary> /// <param name="cvsroot">User information</param> + /// <param name="args">Commandline arguments.</param> public ImportCommandParser(string cvsroot, string[] args) : this(new CvsRoot(cvsroot), args){ *************** *** 79,82 **** --- 80,84 ---- /// </summary> /// <param name="cvsroot">User Information</param> + /// <param name="args">Commandline arguments.</param> public ImportCommandParser(CvsRoot cvsroot, string[] args) { this.cvsRoot = cvsroot; *************** *** 161,169 **** } /// <summary> /// Parse the command line options/ arguments and populate the command /// object with the arguments. /// </summary> ! /// <param name="options">A string value that holds the command /// line options the user has selected.</param> private void ParseOptions (string[] arguments) { --- 163,175 ---- } + public override void ParseOptions() { + this.ParseOptions(this.Args); + } + /// <summary> /// Parse the command line options/ arguments and populate the command /// object with the arguments. /// </summary> ! /// <param name="arguments">A string value that holds the command /// line options the user has selected.</param> private void ParseOptions (string[] arguments) { Index: ListCommandParser.cs =================================================================== RCS file: /cvsroot/sharpcvslib/sharpcvslib/src/ICSharpCode.Console/SharpCvsLib/Console/Parser/ListCommandParser.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ListCommandParser.cs 28 Oct 2004 06:42:20 -0000 1.1 --- ListCommandParser.cs 1 Jan 2005 22:06:37 -0000 1.2 *************** *** 167,172 **** /// object with the arguments. /// </summary> - /// <param name="options">A string value that holds the command - /// line options the user has selected.</param> public override void ParseOptions () { int endofOptions = 0; --- 167,170 ---- Index: UpdateCommandParser.cs =================================================================== RCS file: /cvsroot/sharpcvslib/sharpcvslib/src/ICSharpCode.Console/SharpCvsLib/Console/Parser/UpdateCommandParser.cs,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** UpdateCommandParser.cs 2 Dec 2004 07:12:10 -0000 1.9 --- UpdateCommandParser.cs 1 Jan 2005 22:06:37 -0000 1.10 *************** *** 32,35 **** --- 32,36 ---- // <author>Clayton Harbour</author> #endregion + using System; using System.Collections; *************** *** 365,368 **** --- 366,377 ---- } } + this.ParseFiles(upOptions.Split(' ')); + } + + private void ParseFiles (string[] args) { + FileParser parser = new FileParser(args); + foreach (FileInfo file in parser.Files) { + System.Console.WriteLine(string.Format("File: {0}", file.FullName)); + } } |