Skip to content

Commit

Permalink
When removing previously downloaded FW, try to make any problem files
Browse files Browse the repository at this point in the history
writable and then try deleting again. Fixes #33
  • Loading branch information
julianneswinoga committed Nov 26, 2023
1 parent 1291a6b commit 943e7bc
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion OATFWGUI/gui_logic.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import zipfile
import json
import shutil
import os
import stat
from typing import List, Optional
from pathlib import Path

Expand Down Expand Up @@ -64,11 +66,17 @@ def download_fw(zip_url: str) -> Path:


def extract_fw(zipfile_name: Path) -> Path:
def remove_readonly(func, path, excinfo):
# Windows has a problem with deleting some git files
log.debug(f'Problem removing {path}, attempting to make writable')
os.chmod(path, stat.S_IWRITE)
func(path)

# For Windows path length reasons, keep the firmware folder name short
fw_dir = Path(get_install_dir(), 'OATFW')
if fw_dir.exists():
log.info(f'Removing previously downloaded FW from {fw_dir}')
shutil.rmtree(fw_dir, ignore_errors=True)
shutil.rmtree(fw_dir, onerror=remove_readonly)

log.info(f'Extracting FW from {zipfile_name}')
with zipfile.ZipFile(zipfile_name, 'r') as zip_ref:
Expand Down

0 comments on commit 943e7bc

Please sign in to comment.