Esempio n. 1
0
 LaunchAndProcessInfo BuildProcessInfo(ITransferProgress progress, string source, string destination,
                                       RsyncOptions options) => 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
 };
Esempio n. 2
0
        public ProcessExitResultWithOutput RunAndProcess(ITransferProgress progress, string source, string destination,
                                                         RsyncOptions options = null)
        {
            var processInfo = BuildProcessInfo(progress, source, destination, options);

            return(ProcessExitResultWithOutput.FromProcessExitResult(_processManager.LaunchAndProcess(processInfo),
                                                                     progress.Output));
        }
 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);
 }
 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);
 }
Esempio n. 5
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));
        }
        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
                    });
        }
Esempio n. 7
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
            }));
        }
Esempio n. 8
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($"-e \"'{_sshBinPath}' {sshKeyParams} -i '{HandlePath(options.Key)}'\"");
            }
            if (options.AdditionalArguments != null)
            {
                args.AddRange(options.AdditionalArguments);
            }
            args.Add(HandlePath(source).EscapePath());
            args.Add(HandlePath(destination).EscapePath());
            return(args);
        }
Esempio n. 9
0
 string JoinArgs(string source, string destination, RsyncOptions options)
 => string.Join(" ", GetArguments(source, destination, options));
Esempio n. 10
0
 ProcessStartInfo GetProcessStartInfo(string source, string destination, RsyncOptions options)
 => new ProcessStartInfoBuilder(_binPath, JoinArgs(source, destination, options))
 {
     WorkingDirectory = options.WorkingDirectory ?? Directory.GetCurrentDirectory().ToAbsoluteDirectoryPath()
 }.Build();
Esempio n. 11
0
 LaunchAndProcessInfo BuildProcessInfo(ITransferProgress progress, string source, string destination,
     RsyncOptions options) => 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
 };
Esempio n. 12
0
 string JoinArgs(string source, string destination, RsyncOptions options)
     => string.Join(" ", GetArguments(source, destination, options));
Esempio n. 13
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($"-e \"'{_sshBinPath}' {sshKeyParams} -i '{HandlePath(options.Key)}'\"");
     if (options.AdditionalArguments != null)
         args.AddRange(options.AdditionalArguments);
     args.Add(HandlePath(source).EscapePath());
     args.Add(HandlePath(destination).EscapePath());
     return args;
 }
Esempio n. 14
0
 ProcessStartInfo GetProcessStartInfo(string source, string destination, RsyncOptions options)
     => new ProcessStartInfoBuilder(_binPath, JoinArgs(source, destination, options)) {
         WorkingDirectory = options.WorkingDirectory ?? Directory.GetCurrentDirectory().ToAbsoluteDirectoryPath()
     }.Build();