Changeset 745 for xmlTools


Ignore:
Timestamp:
Mar 26, 2013, 4:04:38 PM (12 years ago)
Author:
s10k
Message:

-added double quotes support (windows users can now specify paths with spaces)
-returning last error as output (helps AEI debugging)

Location:
xmlTools/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • xmlTools/trunk/posUpdate/Program.cs

    r743 r745  
    1111    class Program
    1212    {
    13         public static readonly string toolsVersion = "0.8a";
     13        public static readonly string toolsVersion = "0.8b";
     14        private static appErrors lastError;
    1415
    1516        public enum appErrors
    1617        {
    17             // 0-19 Errors with input parameters
    18             ERROR_PARAMS = 0,
    19             FILE_NOT_FOUND = 1,
    20             ELEMENT_NOT_SPECIFIED=2,
    21             ELEMENT_NOT_FOUND=3,
     18            // 1-19 Errors with input parameters
     19            ERROR_PARAMS = 1,
     20            FILE_NOT_FOUND = 2,
     21            ELEMENT_NOT_SPECIFIED=3,
     22            ELEMENT_NOT_FOUND=4,
    2223            // 20-199 General application errors
    2324            BACKUPS_ALREADY_EXISTS=20,
     
    3637            Console.Error.WriteLine("Error Code: "+(int)error);
    3738            Console.Error.WriteLine(description);
    38            
     39
    3940            if (exitApp)
    4041            {
    4142                Environment.Exit(1);
    4243            }
     44
     45            lastError = error;
    4346        }
    4447
    45         public static void Main(string[] args)
     48        public static int Main(string[] args)
    4649        {
    4750            try
     
    4952                //We use a command parse library due to its advantages
    5053                CLAP.Parser.RunConsole<ParametersParser>(args);
     54                return (int)lastError;
    5155            }
    5256            catch (Exception e)
    5357            {
    5458                printAppError(appErrors.ERROR_PARAMS, "Error processing parameters:\n" + e.ToString());
     59                return (int)appErrors.ERROR_PARAMS;
    5560            }
    5661        }
  • xmlTools/trunk/posUpdate/Util.cs

    r743 r745  
    149149            return source.IndexOf(sToSearch, StringComparison.OrdinalIgnoreCase) >= 0;
    150150        }
     151
     152        // Thanks DarthDevilous for the regex! http://forums.thedailywtf.com/forums/t/2478.aspx
     153        public static string[] stringToArgsArray(string args)
     154        {
     155            MatchCollection ms = Regex.Matches(args, "([^\" ]*(\"[^\"]*\")[^\" ]*)|[^\" ]+");
     156            List<string> listArgs=new List<string>();
     157            foreach (Match m in ms)
     158            {
     159                listArgs.Add(m.Value.Replace("\"","")); //remove quotes or it will cause an error
     160            }
     161            return listArgs.ToArray();
     162        }
    151163    }
    152164}
  • xmlTools/trunk/posUpdate/XmlPatch.cs

    r742 r745  
    285285
    286286                    // Filename already exists?
    287                     if (command.IndexOf("filename:") != -1)
     287                    if (Util.ContainsIgnoreCase(command,"filename:"))
    288288                    {
    289289                        paramType = "filename:";
    290290                    }
    291                     else if (command.IndexOf("filename=") != -1)
     291                    else if (Util.ContainsIgnoreCase(command, "filename="))
    292292                    {
    293293                        paramType = "filename=";
     
    305305                        if (endIdx == -1)
    306306                        {
    307                             endIdx = command.IndexOf("\"", startIdx); // or with quotes
     307                            endIdx = command.IndexOf("\n", startIdx); // or with endline
    308308                        }
    309309                        string currFilename = command.Substring(startIdx, endIdx - startIdx);
     
    318318                }
    319319
    320                 command = command.Replace("\"", ""); // remove quotes
    321 
    322                 Program.Main(command.Split(' ')); // use the current process is more efficient than start a new one
     320                Program.Main(Util.stringToArgsArray(command)); // use the current process is more efficient than start a new one
    323321            }
    324322            catch (Exception e)
  • xmlTools/trunk/posUpdate/xmlTools.csproj.user

    r743 r745  
    22<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    33  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
    4     <StartArguments>replaceall -element:FirstLevel -value:0 -nobackups -filename:C:\Users\home\AppData\Local\Temp\oni_aei\installrun_temp-2013_03_26-01_55_52\level0_final\xml\%2a.xml</StartArguments>
     4    <StartArguments>patchfile -filename:TRAM-knockdown.oni-patch</StartArguments>
    55  </PropertyGroup>
    66  <PropertyGroup>
Note: See TracChangeset for help on using the changeset viewer.