internal static int Main(string[] args) { if (args.Length == 0) { HelpText.Output(); return((int)ExitCode.InvalidCommand); } try { var argsQueue = new Queue <string>(args); var nextArg = argsQueue.Dequeue(); // get the url from the command line string url = "http://localhost:8080"; if (nextArg.ToUpper() == "/U") { nextArg = argsQueue.Dequeue(); if (!nextArg.StartsWith("http", true, null)) { HelpText.Output(); return((int)ExitCode.InvalidCommand); } url = nextArg; nextArg = argsQueue.Dequeue(); } // get a document store to work with var documentStore = GetDocumentStore(url); // handle each command switch (nextArg.ToUpper()) { case "TOUCH": if (argsQueue.Count == 0) { goto default; } // get the database names from the command line var dbNames = argsQueue.ToList(); // if we specified all databases with all -all or /all then touch all databases if (dbNames.Any(x => x.Equals("/ALL", StringComparison.OrdinalIgnoreCase))) { Toucher.TouchAllDatabases(documentStore); return((int)ExitCode.Success); } // touch just the databases we specified Toucher.TouchDatabases(documentStore, dbNames); return((int)ExitCode.Success); default: HelpText.Output(); return((int)ExitCode.InvalidCommand); } } catch (Exception ex) { Console.WriteLine("ERROR: " + ex.Message); return((int)ExitCode.Failure); } }