public Get ( String name ) : |
||
name | String | Specifies the name of the command. |
리턴 |
/// <summary> /// Execute the command line /// </summary> /// <param name="argv"></param> private static void execute(string[] argv) { if (argv.Count() == 0) { ShowHelp(); } else if (!argv[0].StartsWith("--") && !argv[0].StartsWith("-")) { CommandCatalog catalog = new CommandCatalog(); CommandRef subcommand = catalog.Get(argv[0]); string gitdir = null; if (subcommand != null) { TextBuiltin cmd = subcommand.Create(); List <String> args = argv.ToList(); GitSharp.Repository repo = null; try { for (int x = 0; x < args.Count; x++) { if (args[x].IndexOf("--git-dir=") > -1) { if (args[x].Length > 10) { gitdir = args[x].Substring(10); args.RemoveAt(x); break; } } } } catch (ArgumentException) { if (Git.DefaultOutputStream != null) { Git.DefaultOutputStream.WriteLine("error: can't find git directory"); Git.DefaultOutputStream.Flush(); } Exit(1); } if (cmd.RequiresRepository) { if (gitdir == null) { gitdir = Commands.AbstractCommand.FindGitDirectory(null, true, false); if (gitdir == null) { Console.Error.WriteLine("fatal: Not a git repository (or any of the parent directories): .git"); Exit(0); } } repo = new GitSharp.Repository(gitdir); cmd.Init(repo, gitdir); } else { cmd.Init(null, gitdir); } try { // Remove the subcommand from the command line args.RemoveAt(0); cmd.Execute(args.ToArray()); } finally { if (Git.DefaultOutputStream != null) { Git.DefaultOutputStream.Flush(); } if (repo != null) { repo.Close(); } } } else { // List all available commands starting with argv[0] if the command // specified does not exist. // If no commands exist starting with argv[0], show the help screen. if (!ShowCommandMatches(argv[0])) { ShowHelp(); } } } else { // If the first argument in the command line is an option (denoted by starting with - or --), // no subcommand has been specified in the command line. try { options.Parse(argv, out arguments); } catch (OptionException err) { if (arguments.Count > 0) { Console.Error.WriteLine("fatal: " + err.Message); Exit(1); } } } Exit(0); }
/// <summary> /// Execute the command line /// </summary> /// <param name="argv"></param> private static void execute(string[] argv) { if (argv.Count() == 0) { ShowHelp(); } else if (!argv[0].StartsWith("--") && !argv[0].StartsWith("-")) { CommandCatalog catalog = new CommandCatalog(); CommandRef subcommand = catalog.Get(argv[0]); string gitdir = null; if (subcommand != null) { TextBuiltin cmd = subcommand.Create(); List<String> args = argv.ToList(); GitSharp.Repository repo = null; try { for (int x = 0; x < args.Count; x++) { if (args[x].IndexOf("--git-dir=") > -1) { if (args[x].Length > 10) { gitdir = args[x].Substring(10); args.RemoveAt(x); break; } } } } catch (ArgumentException) { if (Git.DefaultOutputStream != null) { Git.DefaultOutputStream.WriteLine("error: can't find git directory"); Git.DefaultOutputStream.Flush(); } Exit(1); } if (cmd.RequiresRepository) { if (gitdir == null) { gitdir = Commands.AbstractCommand.FindGitDirectory(null, true, false); if (gitdir == null) { Console.Error.WriteLine("fatal: Not a git repository (or any of the parent directories): .git"); Exit(0); } } repo = new GitSharp.Repository(gitdir); cmd.Init(repo, gitdir); } else cmd.Init(null, gitdir); try { // Remove the subcommand from the command line args.RemoveAt(0); cmd.Execute(args.ToArray()); } finally { if (Git.DefaultOutputStream != null) Git.DefaultOutputStream.Flush(); if (repo != null) repo.Close(); } } else { // List all available commands starting with argv[0] if the command // specified does not exist. // If no commands exist starting with argv[0], show the help screen. if (!ShowCommandMatches(argv[0])) ShowHelp(); } } else { // If the first argument in the command line is an option (denoted by starting with - or --), // no subcommand has been specified in the command line. try { options.Parse(argv, out arguments); } catch (OptionException err) { if (arguments.Count > 0) { Console.Error.WriteLine("fatal: " + err.Message); Exit(1); } } } Exit(0); }
/// <summary> /// Execute the command line /// </summary> /// <param name="argv"></param> private static void execute(string[] argv) { if (argv.Count() == 0) { ShowHelp(); } else if (!argv[0].StartsWith("--") && !argv[0].StartsWith("-")) { CommandCatalog catalog = new CommandCatalog(); CommandRef subcommand = catalog.Get(argv[0]); if (subcommand != null) { TextBuiltin cmd = subcommand.Create(); if (cmd.RequiresRepository()) { if (gitdir == null) gitdir = findGitDir(); if (gitdir == null || !gitdir.IsDirectory()) { Console.Error.WriteLine("error: can't find git directory"); Exit(1); } cmd.Init(new Repository(gitdir), gitdir.FullName); } else { cmd.Init(null, null); } try { // Remove the subcommand from the command line List<String> args = argv.ToList(); args.RemoveAt(0); cmd.Execute(args.ToArray()); } finally { if (Console.Out != null) Console.Out.Flush(); } } else { // List all available commands starting with argv[0] if the command // specified does not exist. // If no commands exist starting with argv[0], show the help screen. if (!ShowCommandMatches(argv[0])) ShowHelp(); } } else { // If the first argument in the command line is an option (denoted by starting with - or --), // no subcommand has been specified in the command line. try { arguments = options.Parse(argv); } catch (OptionException err) { if (arguments.Count > 0) { Console.Error.WriteLine("fatal: " + err.Message); Exit(1); } } } Exit(0); }