[KiRi] Implemented the targets
For Makefiles and Compress
This commit is contained in:
parent
23427f75e1
commit
1f62308b8b
|
|
@ -55,8 +55,6 @@ def get_cur_user():
|
||||||
class KiRiOptions(VariantOptions):
|
class KiRiOptions(VariantOptions):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
with document:
|
with document:
|
||||||
self.output = GS.def_global_output
|
|
||||||
""" *Filename for the output (%i=diff_pcb/diff_sch, %x=pdf) """
|
|
||||||
self.color_theme = '_builtin_classic'
|
self.color_theme = '_builtin_classic'
|
||||||
""" *Selects the color theme. Only applies to KiCad 6.
|
""" *Selects the color theme. Only applies to KiCad 6.
|
||||||
To use the KiCad 6 default colors select `_builtin_default`.
|
To use the KiCad 6 default colors select `_builtin_default`.
|
||||||
|
|
@ -80,8 +78,15 @@ class KiRiOptions(VariantOptions):
|
||||||
raise KiPlotConfigurationError(f"Wrong number of commits ({self.max_commits}) must be positive")
|
raise KiPlotConfigurationError(f"Wrong number of commits ({self.max_commits}) must be positive")
|
||||||
|
|
||||||
def get_targets(self, out_dir):
|
def get_targets(self, out_dir):
|
||||||
# TODO: Implement
|
hashes, sch_dirty, pcb_dirty, sch_files = self.collect_hashes(out_dir)
|
||||||
return [self._parent.expand_filename(out_dir, self.output)]
|
if len(hashes) + (1 if sch_dirty or pcb_dirty else 0) < 2:
|
||||||
|
return []
|
||||||
|
files = [os.path.join(self.cache_dir, f) for f in ['blank.svg', 'commits', 'index.html', 'kiri-server', 'project']]
|
||||||
|
for h in hashes:
|
||||||
|
files.append(os.path.join(self.cache_dir, h[0][:7]))
|
||||||
|
if sch_dirty or pcb_dirty:
|
||||||
|
files.append(os.path.join(self.cache_dir, HASH_LOCAL))
|
||||||
|
return files
|
||||||
|
|
||||||
def add_to_cache(self, name, hash):
|
def add_to_cache(self, name, hash):
|
||||||
cmd = [self.command, '--no_reader', '--only_cache', '--old_file_hash', hash[:7], '--cache_dir', self.cache_dir,
|
cmd = [self.command, '--no_reader', '--only_cache', '--old_file_hash', hash[:7], '--cache_dir', self.cache_dir,
|
||||||
|
|
@ -255,8 +260,8 @@ class KiRiOptions(VariantOptions):
|
||||||
# for id, color in self._color_theme.layer_id2color.items():
|
# for id, color in self._color_theme.layer_id2color.items():
|
||||||
# f.write(f'.layer_color_{id} {{ color: {color[:7]}; }}\n')
|
# f.write(f'.layer_color_{id} {{ color: {color[:7]}; }}\n')
|
||||||
|
|
||||||
def run(self, name):
|
def collect_hashes(self, out_dir):
|
||||||
self.cache_dir = self._parent.output_dir
|
self.cache_dir = out_dir
|
||||||
self.command = self.ensure_tool('KiDiff')
|
self.command = self.ensure_tool('KiDiff')
|
||||||
self.git_command = self.ensure_tool('Git')
|
self.git_command = self.ensure_tool('Git')
|
||||||
# Get a list of files for the project
|
# Get a list of files for the project
|
||||||
|
|
@ -272,6 +277,10 @@ class KiRiOptions(VariantOptions):
|
||||||
# Ensure we have at least 2
|
# Ensure we have at least 2
|
||||||
sch_dirty = self.git_dirty(GS.sch_file)
|
sch_dirty = self.git_dirty(GS.sch_file)
|
||||||
pcb_dirty = self.git_dirty(GS.pcb_file)
|
pcb_dirty = self.git_dirty(GS.pcb_file)
|
||||||
|
return hashes, sch_dirty, pcb_dirty, sch_files
|
||||||
|
|
||||||
|
def run(self, name):
|
||||||
|
hashes, sch_dirty, pcb_dirty, sch_files = self.collect_hashes(self._parent.output_dir)
|
||||||
if len(hashes) + (1 if sch_dirty or pcb_dirty else 0) < 2:
|
if len(hashes) + (1 if sch_dirty or pcb_dirty else 0) < 2:
|
||||||
logger.warning(W_NOTHCMP+'Nothing to compare')
|
logger.warning(W_NOTHCMP+'Nothing to compare')
|
||||||
return
|
return
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue