Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions internal_filesystem/lib/mpos/content/app_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,25 @@ def uninstall_app(app_fullname):
@staticmethod
def install_mpk(temp_zip_path, dest_folder):
try:
# Step 1: Remove any existing (possibly partial) install or symlink
try:
st = os.stat(dest_folder)
if st[0] & 0x4000: # It's a real directory
import shutil
shutil.rmtree(dest_folder)
print("Removed existing folder:", dest_folder)
else:
os.remove(dest_folder)
print("Removed existing file:", dest_folder)
except OSError:
pass # Doesn't exist, that's fine
# Also remove if it's a symlink (broken or otherwise)
try:
os.remove(dest_folder)
print("Removed symlink:", dest_folder)
except OSError:
pass # Not a symlink or already removed

# Step 2: Unzip the file
print("Unzipping it to:", dest_folder)
with zipfile.ZipFile(temp_zip_path, "r") as zip_ref:
Expand Down