Skip to content

Commit

Permalink
Merge pull request #60 from OpenAstroTech/task/js/hotpatch-SSD1306
Browse files Browse the repository at this point in the history
Hotpatch ssd1306
  • Loading branch information
julianneswinoga authored Feb 22, 2025
2 parents 8267fc1 + e492dca commit 5020769
Showing 1 changed file with 25 additions and 5 deletions.
30 changes: 25 additions & 5 deletions OATFWGUI/gui_logic.py
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,8 @@ def open_local_config_file(self):
def do_hot_patches(self):
# Before logging anything, check that we need to do something
ini_lines = read_platformio_ini_file(self.logic_state)
bad_git_tag_re = re.compile(r'(github\.com.+)@')

bad_git_tag_re = re.compile(r'(^[^;\n]+github\.com.+)@')
if any(bad_git_tag_re.search(ini_line) for ini_line in ini_lines):
log.warning('Hot patching git tag specifiers!!!')
def patch_line(in_str: str) -> str:
Expand All @@ -262,8 +263,6 @@ def patch_line(in_str: str) -> str:
patch_line(line)
for line in ini_lines
]
with open(Path(self.logic_state.fw_dir, 'platformio.ini').resolve(), 'w') as fp:
fp.writelines(ini_lines)

if self.logic_state.env_is_avr_based():
# hard match the entire line
Expand All @@ -278,8 +277,29 @@ def patch_line(in_str: str) -> str:
good_platform_line if line == bad_platform_line else line
for line in ini_lines
]
with open(Path(self.logic_state.fw_dir, 'platformio.ini').resolve(), 'w') as fp:
fp.writelines(ini_lines)

bad_ssd_1306_revision_re = re.compile(r'(ClutchplateDude/esp8266-oled-ssd1306\s*#\s*4\.6\.0)')
if any(bad_ssd_1306_revision_re.search(ini_line) for ini_line in ini_lines):
log.warning('Hot patching oled-ssd1306 revision!!!')
def patch_line(in_str: str) -> str:
if bad_ssd_1306_revision_re.search(in_str):
out_str = bad_ssd_1306_revision_re.sub(r'ClutchplateDude/esp8266-oled-ssd1306#4f596c75', in_str)
log.warning(f'Replacing {in_str} with {out_str}')
return out_str
else:
return in_str
ini_lines = [
patch_line(line)
for line in ini_lines
]

# Just re-read the ini file to see if we changed anything
if ini_lines != read_platformio_ini_file(self.logic_state):
log.debug('Writing out patched ini file')
with open(Path(self.logic_state.fw_dir, 'platformio.ini').resolve(), 'w') as fp:
fp.writelines(ini_lines)
else:
log.debug('No patches applied')

def build_fw(self):
self.main_app.wSpn_build.setState(BusyIndicatorState.BUSY)
Expand Down

0 comments on commit 5020769

Please sign in to comment.