Raven.DBUtil.Program.Main C# (CSharp) Method

Main() static private method

static private Main ( string args ) : int
args string
return int
		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;
			}
		}