Ejemplo n.º 1
0
			/// <exception cref="NGit.Errors.TransportException"></exception>
			internal override void Exec(string commandName)
			{
				string ssh = SystemReader.GetInstance().Getenv("GIT_SSH");
				bool putty = ssh.ToLower().Contains("plink");
				IList<string> args = new AList<string>();
				args.AddItem(ssh);
				if (putty)
				{
					args.AddItem("--batch");
				}
				if (0 < this._enclosing.GetURI().GetPort())
				{
					args.AddItem(putty ? "-P" : "-p");
					args.AddItem(this._enclosing.GetURI().GetPort().ToString());
				}
				if (this._enclosing.GetURI().GetUser() != null)
				{
					args.AddItem(this._enclosing.GetURI().GetUser() + "@" + this._enclosing.GetURI().
						GetHost());
				}
				else
				{
					args.AddItem(this._enclosing.GetURI().GetHost());
				}
				args.AddItem(this._enclosing.CommandFor(commandName));
				ProcessStartInfo pb = new ProcessStartInfo();
				pb.SetCommand(args);
				if (this._enclosing.local.Directory != null)
				{
					pb.EnvironmentVariables.Put(Constants.GIT_DIR_KEY, this._enclosing.local.Directory
						.GetPath());
				}
				try
				{
					this.proc = pb.Start();
				}
				catch (IOException err)
				{
					throw new TransportException(this._enclosing.uri, err.Message, err);
				}
			}
Ejemplo n.º 2
0
			/// <exception cref="NGit.Errors.TransportException"></exception>
			public virtual SystemProcess Exec(string command, int timeout)
			{
				string ssh = SystemReader.GetInstance().Getenv("GIT_SSH");
				bool putty = ssh.ToLower().Contains("plink");
				IList<string> args = new AList<string>();
				args.AddItem(ssh);
				if (putty && !ssh.ToLower().Contains("tortoiseplink"))
				{
					args.AddItem("-batch");
				}
				if (0 < this._enclosing.GetURI().GetPort())
				{
					args.AddItem(putty ? "-P" : "-p");
					args.AddItem(this._enclosing.GetURI().GetPort().ToString());
				}
				if (this._enclosing.GetURI().GetUser() != null)
				{
					args.AddItem(this._enclosing.GetURI().GetUser() + "@" + this._enclosing.GetURI().
						GetHost());
				}
				else
				{
					args.AddItem(this._enclosing.GetURI().GetHost());
				}
				args.AddItem(command);
				ProcessStartInfo pb = new ProcessStartInfo();
				pb.SetCommand(args);
				if (this._enclosing.local.Directory != null)
				{
					pb.EnvironmentVariables.Put(Constants.GIT_DIR_KEY, this._enclosing.local.Directory
						.GetPath());
				}
				try
				{
					return pb.Start();
				}
				catch (IOException err)
				{
					throw new TransportException(err.Message, err);
				}
			}
Ejemplo n.º 3
0
		public override ProcessStartInfo RunInShell(string cmd, string[] args)
		{
			IList<string> argv = new AList<string>(3 + args.Length);
			argv.AddItem("cmd.exe");
			argv.AddItem("/c");
			argv.AddItem(cmd);
			Sharpen.Collections.AddAll(argv, Arrays.AsList(args));
			ProcessStartInfo proc = new ProcessStartInfo();
			proc.SetCommand(argv);
			return proc;
		}