(fix) The code for parsing log lines is now identically (backup_rsync & btrfs)

This commit is contained in:
SeiyaGame
2025-12-29 17:02:46 +01:00
committed by Simon Fonteneau
parent 3b8875a365
commit be6c6356b7
+14 -9
View File
@@ -889,16 +889,21 @@ class backup_generic(ABC):
log = monitor_stdout(process,ondata,self) log = monitor_stdout(process,ondata,self)
reg_total_files = re.compile(r'Number of files: (?P<file>\d+)')
reg_transferred_files = re.compile(r'Number of .*files transferred: (?P<file>\d+)')
for l in log.splitlines(): for l in log.splitlines():
if l.startswith('Number of files:'): line = l.replace(',','').replace('.','')
stats['total_files_count'] += int(re.findall(r'[0-9]+', l.replace(',','').split(':')[1])[0]) m = reg_total_files.match(line)
if (l.startswith('Number of files transferred:') or if m:
l.startswith('Number of regular files transferred:')): stats['total_files_count'] += int(m.groupdict()['file'])
stats['written_files_count'] += int(l.replace(',','').split(':')[1]) m = reg_transferred_files.match(line)
if l.startswith('Total file size:'): if m:
stats['total_bytes'] += int(l.replace(',','').split(':')[1].split()[0]) stats['written_files_count'] += int(m.groupdict()['file'])
if l.startswith('Total transferred file size:'): if line.startswith('Total file size:'):
stats['written_bytes'] += int(l.replace(',','').split(':')[1].split()[0]) stats['total_bytes'] += int(line.split(':')[1].split()[0])
if line.startswith('Total transferred file size:'):
stats['written_bytes'] += int(line.split(':')[1].split()[0])
returncode = process.returncode returncode = process.returncode
## deal with exit code 24 (file vanished) ## deal with exit code 24 (file vanished)
if (returncode == 24): if (returncode == 24):