@@ -378,7 +378,8 @@ def parse_stdout(line: str):
378378 return
379379
380380 def parse_stderr (line : str ):
381- logger .warning (f"rsync stderr: { line !r} " )
381+ if line .strip ():
382+ logger .warning (f"rsync stderr: { line !r} " )
382383
383384 # Generate list of relative filenames for this batch of transferred files
384385 # Relative filenames will be safe to use on both Windows and Unix
@@ -451,10 +452,11 @@ def parse_stderr(line: str):
451452 capture_output = True ,
452453 input = rsync_stdin ,
453454 )
454- for stdout_line in result .stdout .decode ("utf8" , "replace" ).split ("\n " ):
455- parse_stdout (stdout_line )
456- for stderr_line in result .stderr .decode ("utf8" , "replace" ).split ("\n " ):
457- parse_stderr (stderr_line )
455+ # Parse outputs
456+ for line in result .stdout .decode ("utf8" , "replace" ).split ("\n " ):
457+ parse_stdout (line )
458+ for line in result .stderr .decode ("utf8" , "replace" ).split ("\n " ):
459+ parse_stderr (line )
458460 success = result .returncode == 0
459461
460462 # Remove files from source
@@ -474,12 +476,14 @@ def parse_stderr(line: str):
474476 capture_output = True ,
475477 input = rsync_stdin_remove ,
476478 )
477- # Only error log should be needed for file removal rsync process
478- for stderr_line in result .stderr .decode ("utf8" , "replace" ).split ("\n " ):
479- parse_stderr (stderr_line )
480-
479+ # Parse outputs
480+ for line in result .stdout .decode ("utf8" , "replace" ).split ("\n " ):
481+ parse_stdout (line )
482+ for line in result .stderr .decode ("utf8" , "replace" ).split ("\n " ):
483+ parse_stderr (line )
484+ # Leave it as a failure if the previous rsync subprocess failed
481485 if success :
482- success = result .returncode == 0 if result else False
486+ success = result .returncode == 0
483487
484488 self .notify (successful_updates , secondary = True )
485489
0 commit comments