Ejemplo n.º 1
0
 public ProcessExitResultWithOutput RunAndProcess(ITransferProgress progress, string source, string destination,
     CancellationToken token,
     RsyncOptions options = null) {
     var processInfo = BuildProcessInfo(progress, source, destination, options);
     processInfo.CancellationToken = token;
     return ProcessExitResultWithOutput.FromProcessExitResult(_processManager.LaunchAndProcess(processInfo),
         progress.Output);
 }
Ejemplo n.º 2
0
 public async Task<ProcessExitResultWithOutput> RunAndProcessAsync(ITransferProgress progress, string source,
     string destination,
     RsyncOptions options = null) {
     var processInfo = BuildProcessInfo(progress, source, destination, options);
     return
         ProcessExitResultWithOutput.FromProcessExitResult(
             await _processManager.LaunchAndProcessAsync(processInfo).ConfigureAwait(false), progress.Output);
 }
Ejemplo n.º 3
0
        public ProcessExitResultWithOutput Run(string source, string destination, RsyncOptions options = null) {
            var startInfo = new ProcessStartInfo(_binPath.ToString(), JoinArgs(source, destination, options))
                .SetWorkingDirectoryOrDefault(Directory.GetCurrentDirectory());

            return
                _processManager.LaunchAndGrab(
                    new BasicLaunchInfo(
                        startInfo) {
                            MonitorOutput = _processManager.DefaultMonitorOutputTimeOut,
                            MonitorResponding = _processManager.DefaultMonitorRespondingTimeOut
                        });
        }
Ejemplo n.º 4
0
 LaunchAndProcessInfo BuildProcessInfo(ITransferProgress progress, string source, string destination, RsyncOptions options) {
     return new LaunchAndProcessInfo(GetProcessStartInfo(source, destination, options)) {
         StandardOutputAction = (process, data) => _parser.ParseOutput(process, data, progress),
         StandardErrorAction = (process, data) => _parser.ParseOutput(process, data, progress),
         MonitorOutput = _processManager.DefaultMonitorOutputTimeOut,
         MonitorResponding = _processManager.DefaultMonitorRespondingTimeOut
     };
 }
Ejemplo n.º 5
0
 string JoinArgs(string source, string destination, RsyncOptions options) {
     return string.Join(" ", GetArguments(source, destination, options));
 }
Ejemplo n.º 6
0
 IEnumerable<string> GetArguments(string source, string destination, RsyncOptions options) {
     if (options == null) options = new RsyncOptions();
     var args = new[] {defaultParams}.ToList();
     if (options.Key != null)
         args.Add(string.Format("-e \"'{0}' {1} -i '{2}'\"", _sshBinPath, sshKeyParams, HandlePath(options.Key)));
     if (options.AdditionalArguments != null)
         args.AddRange(options.AdditionalArguments);
     args.Add(HandlePath(source).EscapePath());
     args.Add(HandlePath(destination).EscapePath());
     return args;
 }
Ejemplo n.º 7
0
 ProcessStartInfo GetProcessStartInfo(string source, string destination, RsyncOptions options) {
     return new ProcessStartInfoBuilder(_binPath, JoinArgs(source, destination, options)) {
         WorkingDirectory = options.WorkingDirectory ?? Directory.GetCurrentDirectory()
     }.Build();
 }