Abort when a .sch and .kicad_sch of the same name are detected

Closes #397
This commit is contained in:
Salvador E. Tropea 2023-03-02 11:11:43 -03:00
parent 957c398500
commit d656b338b2
1 changed files with 22 additions and 11 deletions

View File

@ -685,17 +685,25 @@ def guess_ki6_sch(schematics):
return None
def avoid_mixing_5_and_6():
logger.error('Found KiCad 5 and KiCad 6 files, make sure the whole project uses one version')
exit(EXIT_BAD_CONFIG)
def solve_schematic(base_dir, a_schematic=None, a_board_file=None, config=None, sug_e=True):
schematic = a_schematic
if not schematic and a_board_file:
base = os.path.splitext(a_board_file)[0]
sch = os.path.join(base_dir, base+'.sch')
if os.path.isfile(sch):
kicad_sch = os.path.join(base_dir, base+'.kicad_sch')
found_sch = os.path.isfile(sch)
found_kicad_sch = os.path.isfile(kicad_sch)
if found_sch and found_kicad_sch:
avoid_mixing_5_and_6()
if found_sch:
schematic = sch
else:
sch = os.path.join(base_dir, base+'.kicad_sch')
if os.path.isfile(sch):
schematic = sch
elif GS.ki6 and found_kicad_sch:
schematic = kicad_sch
if not schematic:
schematics = glob(os.path.join(base_dir, '*.sch'))
if GS.ki6:
@ -716,13 +724,16 @@ def solve_schematic(base_dir, a_schematic=None, a_board_file=None, config=None,
config = os.path.splitext(config)[0]
# Try KiCad 5
sch = os.path.join(base_dir, config+'.sch')
if os.path.isfile(sch):
found_sch = os.path.isfile(sch)
# Try KiCad 6
kicad_sch = os.path.join(base_dir, config+'.kicad_sch')
found_kicad_sch = os.path.isfile(kicad_sch)
if found_sch and found_kicad_sch:
avoid_mixing_5_and_6()
if found_sch:
schematic = sch
elif GS.ki6:
# Try KiCad 6
sch = os.path.join(base_dir, config+'.kicad_sch')
if os.path.isfile(sch):
schematic = sch
elif GS.ki6 and found_kicad_sch:
schematic = kicad_sch
if not schematic:
# Look for a schematic with a PCB and/or project
for sch in schematics: