diff options
| author | Treeki <treeki@gmail.com> | 2011-03-26 03:45:34 +0100 | 
|---|---|---|
| committer | Treeki <treeki@gmail.com> | 2011-03-26 03:45:34 +0100 | 
| commit | fd085848e60831a8582c24de8f30ad4528f9d490 (patch) | |
| tree | b00fd7539c1cb02ff5187f212b5bd2e8128e82bd /ConsoleApp/Main.cs | |
| parent | 6a3b743987ca132729845613bc2d043f75f0d9e5 (diff) | |
| download | nw4rtools-fd085848e60831a8582c24de8f30ad4528f9d490.tar.gz nw4rtools-fd085848e60831a8582c24de8f30ad4528f9d490.zip | |
unfinished console interface to NW4RTools added
Diffstat (limited to '')
| -rw-r--r-- | ConsoleApp/Main.cs | 84 | 
1 files changed, 84 insertions, 0 deletions
| diff --git a/ConsoleApp/Main.cs b/ConsoleApp/Main.cs new file mode 100644 index 0000000..322d277 --- /dev/null +++ b/ConsoleApp/Main.cs @@ -0,0 +1,84 @@ +using System; +using System.Collections.Generic; + +namespace ConsoleApp { +	class MainClass { +		private static Dictionary<string, Command> CommandLookup; + +		private static void SetupCommands() { +			CommandLookup = new Dictionary<string, Command>(); + +			CommandLookup.Add("init", new InitCommand()); +			CommandLookup.Add("list", new ListCommand()); +			CommandLookup.Add("import-obj", new ImportObjCommand()); +			CommandLookup.Add("export-obj", new ExportObjCommand()); +			CommandLookup.Add("export-collada", new ExportColladaCommand()); +			CommandLookup.Add("export-textures", new ExportTexturesCommand()); +		} + +		public static void Main(string[] args) { +			Console.WriteLine("NW4RTools by Treeki"); +			Console.WriteLine(); + +			SetupCommands(); + +			// process the command line +			string cmd; +			string[] cmdArgs; + +			if (args.Length == 0) { +				cmd = "help"; +				cmdArgs = new string[0]; +			} else { +				cmd = args[0]; +				cmdArgs = new string[args.Length - 1]; + +				for (int i = 1; i < args.Length; i++) { +					cmdArgs[i - 1] = args[i]; +				} +			} + +			// handle Help if needed +			if (cmd == "help") { +				Help(cmdArgs); +				return; +			} + +			// otherwise, pass it on +			if (CommandLookup.ContainsKey(cmd)) { +				CommandLookup[cmd].Execute(cmdArgs); +			} else { +				Console.WriteLine("Unknown command {0}. Try \"help\" for a list of usable commands", cmd); +			} +		} + +		private static void Help(string[] args) { +			if (args.Length == 0) { +				Console.WriteLine("Available commands:"); + +				foreach (var cmd in CommandLookup) { +					Console.WriteLine("- {0}: {1}", cmd.Key, cmd.Value.Description); +				} + +				Console.WriteLine(); +				Console.WriteLine("For additional info, try: help <command-name>"); + +			} else { +				if (CommandLookup.ContainsKey(args[0])) { +					Console.WriteLine("Help for {0}:", args[0]); +					string[] helpArgs = new string[args.Length - 1]; + +					for (int i = 1; i < args.Length; i++) { +						helpArgs[i - 1] = args[i]; +					} + +					Console.WriteLine(CommandLookup[args[0]].GetHelp(helpArgs)); + +				} else { +					Console.WriteLine("Unknown command {0}. Try \"help\" for a list of usable commands", args[0]); +				} +			} +		} +	} +} + | 
