refactor: extract command line splitting to separate method

This commit is contained in:
Emmanuel BENOîT 2025-04-07 10:59:17 +02:00
parent ce07b6f0db
commit 279a6ff004
Signed by: Emmanuel BENOîT
SSH key fingerprint: SHA256:l7PFUUF5TCDsvYeQC9OnTNz08dFY7Fvf4Hv3neIqYpg

View file

@ -50,44 +50,42 @@ class SRTMerger:
errors.append(f"Error reading {filename}: {e}")
return commands, errors
for line_number, line in enumerate(lines, start=1):
line = line.strip()
if not line:
continue
if line.startswith('#'):
continue
parts = shlex.split(line)
command_parts = []
for part in parts:
if part.startswith('#'):
break
command_parts.append(part)
if not command_parts:
continue
command = command_parts[0].upper()
parts = SRTMerger.split_line(line)
command = parts[0].upper()
if command not in ['COPY', 'MAP', 'SYNC', 'PUT']:
errors.append(f"Line {line_number}: unknown command '{command}'.")
continue
parsed = None
if command == 'COPY':
parsed = self.parse_copy(command_parts)
parsed = self.parse_copy(parts)
if parsed is None:
errors.append(f"Line {line_number}: invalid COPY command.")
elif command == 'MAP':
parsed = self.parse_map(command_parts)
parsed = self.parse_map(parts)
if parsed is None:
errors.append(f"Line {line_number}: invalid MAP command.")
elif command == 'SYNC':
parsed = self.parse_sync(command_parts)
parsed = self.parse_sync(parts)
if parsed is None:
errors.append(f"Line {line_number}: invalid SYNC command.")
elif command == 'PUT':
parsed = self.parse_put(command_parts)
parsed = self.parse_put(parts)
if parsed is None:
errors.append(f"Line {line_number}: invalid PUT command.")
if parsed is not None:
commands.append(parsed)
return commands, errors
@staticmethod
def split_line(line):
line = line.strip()
parts = []
for part in shlex.split(line):
if part.startswith('#'):
break
parts.append(part)
return parts
def parse_copy(self, parts):
if len(parts) != 3:
return None